感謝您的關注。我是一些VS2013代碼的新手,它是C++加上一些微軟特定擴展的混合體。該代碼有像將非託管/非託管成員添加到託管類
ref class Foo {
Bar^ bar_; // somewhere else, bar_ = gcnew Bar...
};
類現在我需要添加一個託管成員,從網上搜索好像我可以做
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_?
}
};
的問題是:
1)這是終結者/析構者的路要走嗎?
2)我是否需要爲bar_
寫入任何額外的內容,現在我明確寫了終結器/析構函數?
3)有沒有更乾淨的方法來做到這一點?
謝謝@ hans-passant!自從我已經是純粹的C++,但是新到VS2013之後,還有一個跟進。我如何檢查課程是否是一次性的?他們在宣言中是否都很明顯?我還看到像POD('bool'等),'array ^'和'String ^'之類的東西,例如我無法獲得'ref class array'的源碼? –
hahaha
當它實現IDisposable接口。對象瀏覽器可以告訴你,一個。 POD永遠不會。 –