ありがとうございました。私はいくつかのVS2013コードを新しくしています。これは、C++といくつかのMicrosoft固有の拡張機能を組み合わせたものです。 )管理対象クラスに管理対象外/非管理対象メンバーを追加する
1:コードは、今、私は質問がある
ref class Foo {
Bar^bar_;
Unmanaged* ptr_; // somewhere else, ptr = new Unmanaged();
~Foo() {
this->!Foo();
}
!Foo() {
delete ptr_;
// do I need anything to deal with bar_?
}
};
を行うことができますようにそれはそうオンライン検索から、管理されていないメンバーを追加する必要があると思い
ref class Foo {
Bar^ bar_; // somewhere else, bar_ = gcnew Bar...
};
のようなクラスを持っていますこのファイナライザ/デストラクタは行く方法ですか?
2)bar_
のために余分なものを書く必要がありますが、ファイナライザ/デストラクタを明示的に記述していますか?
3)もっとクリーンな方法がありますか?
ありがとう@ hans-passant!私は純粋なC++であったが、VS2013を初めて使用して以来、もう1つのフォローアップがあります。クラスが使い捨てであるかどうかを確認するにはどうすればよいですか?それらはすべて宣言に明白ですか?私はPOD( 'bool'など)、'配列^'、' String^'のようなものも見ています。たとえば、' ref class array'のソースに到達できません。 –
hahaha
IDisposableインターフェイスを実装するとき。オブジェクトブラウザは、あなたにそれを伝えることができます。 PODは決してしません。 –