クラスに演算子new
とdelete
がオーバーロードされています。 new
は公開されており、delete
はプライベートです。publicオペレータnew、privateオペレータdelete:newを使用するとC2248「プライベート・メンバにアクセスできません」
このクラスのインスタンスを作成するとき、私は次のエラーを取得する:
pFoo = new Foo(bar)
example.cpp(1):エラーC2248: 'フー:delete演算子は':プライベートメンバにアクセスすることはできませんが、クラス内で宣言'Foo'
ここではdelete
への呼び出しはありません。そのため、コンパイラーの頭の中で何が起こっていますか? :)
- エラーの原因は何ですか?
- メンバー
CreateInstance
の機能に頼らずに問題を解決することはできますか?
2の問題。クラスを継承することができ、デストラクタを誤ってpublicとして再定義することができるということです。 – Marius
プライベート・デストラクターを持つクラスは継承できません。 –