我有一个类,其中包含一些我想对调用者隐藏的数据成员(因为包括其类型的标头会显着增加编译时间,并且它需要使用此类的每个项目都为其包含路径添加额外的路径)。
此类QSharedDataPointer
用于存储此数据。这样就可以使用默认的复制构造函数来复制它。
这个类的基本结构是:
class MyClass {
private:
QSharedDataPointer<MySharedClassData> m_data;
};
是否有任何花哨的技巧可以做到这一点而不在同一个头文件中定义MySharedClassData
(继承自)?QSharedData
或者还有其他隐藏数据字段的好方法吗?
我已经尝试过前向声明,MySharedClassData
但这没有用(尽管事实m_data
是private
)。
我目前唯一能做的解决方案是声明m_data
为,QSharedDataPointer<QSharedData>
但每次我想访问它时我都需要强制转换数据成员。有更好的解决方案吗?