Я ищу решение этой проблемы, и я думаю, что оно имеет что-то из-за вложенных пространств имен.
Ниже мы имеем соответствующую часть:
creation.hpp Это реализация интерфейса
#ifndef IMPLEMENTATION_H
#define IMPLEMENTATION_H
#include "class_b.hpp"
namespace XPTO {
class Implementation : public XPTO::Interface {
public:
Implementation();
~Implementation() override;
ReturnStatus
initialize() override;
private:
CLASS_B::Class_B b; // namespace CLASS_B, class Class_B
};
}
#endif
implementation.cpp
#include "implementation.hpp"
XPTO::Implementation::Implementation() {}
XPTO::ReturnStatus
XPTO::Implementation::initialize() {
b = new CLASS_B::Class_B::Class_B();
//namespace ClASS_B, class Class_B and constructor Class_B()
}
class_b.hpp
#ifndef CLASS_B_H
#define CLASS_B_H
namespace CLASS_B{
class Class_B {
public:
Class_B();
~Class_B();
void initialize();
};
}
#endif
Ошибка
ошибка: ожидаемый спецификатор типа b = new CLASS_B :: Class_B :: Class_B ();
Компилятор указывает на пространство имен CLASS_B.