呼び出し元から隠したいデータ メンバーを持つクラスがあります (型のヘッダーを含めるとコンパイル時間が大幅に長くなり、このクラスを使用するすべてのプロジェクトでインクルード パスにパスを追加する必要があるため) )。
このクラスはQSharedDataPointer、このデータを格納するために使用します。このようにして、デフォルトのコピー コンストラクターを使用してコピーできます。
このクラスの基本構造は次のとおりです。
class MyClass {
private:
QSharedDataPointer<MySharedClassData> m_data;
};
同じヘッダーファイルで(から継承する)を定義せずにこれを行うための巧妙なトリックはありますか? または、データ フィールドを非表示にする他の良い方法はありますか?MySharedClassDataQSharedData
私はすでに の前方宣言を試みましたが、これはうまくいきませんでした (事実にもMySharedClassDataかかわらず)。m_dataprivate
私が現在できる唯一の解決策は、m_dataとして宣言するQSharedDataPointer<QSharedData>ことですが、アクセスするたびにデータメンバーをキャストする必要があります。より良い解決策はありますか?