C++ 防止头文件暴露私有变量
C++ 中可以通过嵌套类的形式防止成员私有变量暴露在头文件里。
1 2 3 4 5 6 7 8 9 10
| class Exposure { Exposure(); int interface(int foo); private: class Impl; std::unique_ptr<Impl> impl_; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Exposure::Impl { int interfaceImpl(int foo){ return 0; } }
Exposure::Exposure() : impl_(std::make_unique<Impl>()){}
int Exposure::interface(int foo){ return this->impl_->interfaceImpl(foo); }
|