C++ - 包装器 class 优于实现 class
C++ - Wrapper classes over implementation class
我正在尝试在一些完整的 implementation.h 文件上实现 2 个包装器 class(1 个用户,1 个程序员)。我的目标是让用户无法访问有关该结构的结构或实现细节。这个想法也是只将必要的方法从 implementation.h 扩展到 user/programmer。有什么想法吗?
implementation.h
class implementation{
public:
/*....methods.....*/
private:
struct MyStruct;
}
user.h
class user{
public:
/*....methods.....*/
}
programmer.h
class programmer{
public:
/*....methods.....*/
}
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>();
}
我正在尝试在一些完整的 implementation.h 文件上实现 2 个包装器 class(1 个用户,1 个程序员)。我的目标是让用户无法访问有关该结构的结构或实现细节。这个想法也是只将必要的方法从 implementation.h 扩展到 user/programmer。有什么想法吗?
implementation.h
class implementation{
public:
/*....methods.....*/
private:
struct MyStruct;
}
user.h
class user{
public:
/*....methods.....*/
}
programmer.h
class programmer{
public:
/*....methods.....*/
}
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>();
}