我正在开发一个库,希望为我的用户提供一个公共接口,该接口与真实实现分离,而实现则隐藏在命名空间中。这样,我就可以仅更改HiddenQueue类而不更改仅向用户公开的myQueue。
如果我将HiddenQueue的C++代码放入myQueue.cpp文件中,则编译器会抱怨_innerQueue具有不完整的类型。我认为链接器能够解决这个问题。我在这里做错了什么?
// myQueue.h
namespace inner{
class HiddenQueue;
};
class myQueue{
public:
myQueue();
);
private:
inner::HiddenQueue _innerQueue;
};
///////////////////////////
// myQueue.cpp
namespace inner{
class HiddenQueue{};
};