是否有可能实现以下目的:
x.hpp – 此文件包含在许多其他类中
class x_impl; //forward declare class x { public: //methods... private: x_impl* impl_; };
x.cpp – 实现
#include <conrete_x> typedef concrete_x x_impl; //obvIoUsly this doesn't work //implementation of methods...
所以基本上,我希望用户包含文件x.hpp,但不知道conrete_x.hpp标题.
既然我只能用一个指针来使用concrete_x,而且只能作为一个私有数据成员使用,所以前端的声明应该足够让编译器知道有多少空间来准备它.它看起来很像着名的“pimpl成语”.
你可以帮我吗
PS.我不想使用一个void *并将其投射