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>();
}