我正在尝试通过一些完整的Implementation.h文件实现2个包装器类(1个用户,1个程序员)。我的目标是使用户无法访问该结构或有关该结构的实现详细信息。这个想法还只是将必要的方法从Implementation.h扩展到任何一个用户/程序员。有什么想法吗?
implementation.h
class implementation{
public:
/*....methods.....*/
private:
struct MyStruct;
}
user.h
class user{
public:
/*....methods.....*/
}
programmer.h
class programmer{
public:
/*....methods.....*/
}
答案 0 :(得分:1)
implementation.h
#include <memory>
class implementation{
public:
/*....methods.....*/
private:
struct MyStruct;
std::unique_ptr<MyStruct> my_data;
}
implementation.cc
implementation::MyStruct {
public:
/*....methods.....*/
private:
...
};
implementation::implementation() {
my_data = std::make_unique<MyStruct>();
}