cppファイルで、C++クラスのプライベートデータメンバーをユーザーから遠ざける方法はありますか? 私はプライベート メンバーを実装の一部と考えており、ヘッダー ファイルでそれらを宣言するのは少し逆に思えます。
30527 次
5 に答える
64
「pimpl」イディオムは、これが一般的にどのように処理されるかです。
見る
于 2008-10-15T20:23:48.247 に答える
11
PIMPLイディオムのようなものを使いたい
于 2008-10-15T20:28:06.847 に答える
8
Pimplイディオムを参照してください
于 2008-10-15T20:24:10.850 に答える
4
これを行う古典的な方法は、機能を実装する内部クラスへのプロキシ ポインターを使用することです。私が知っている C++ で部分クラス定義を行う方法はありません。
于 2008-10-15T20:23:57.463 に答える
1
商業化?;)
パブリックおよび保護された API のみを宣言するヘッダー ファイルを作成できます。
ユーザーには、含めることができるこれらのみが表示されます。完全な API と定義を使用して構築したライブラリとコードをリンクします。
インライン化された関数の場合: インライン化されていないコードで使用されていることを確認してください。その後、ライブラリで利用可能な定義が存在します (ただし、ユーザー実装でインライン化されるかどうかはわかりません)。
テンプレート化されたコードの場合、回避策はありません。中途半端な解決策の 1 つは、さまざまなオブジェクト タイプでテンプレート化されたコードを使用するコードを作成することです。これらはライブラリで使用できる唯一の定義であるため、ユーザーはこれらに限定されます。
于 2010-01-25T17:57:34.090 に答える