感谢您的关注。我是一些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永远不会。 –