我想製作一個名爲「Person」的我自己的對象類的全局向量。然而,編譯器說,C++ Ref類不是System :: IDisposable的成員;麻煩實施IDisposable
error C2039: '{dtor}' : is not a member of 'System::IDisposable'
1> c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : see declaration of 'System::IDisposable'
於是我擡起頭來如何實現IDisposable(我現在知道的是主要用於非託管資源),但似乎仍然無法與以下實現它:
ref class Globals : System::IDisposable
{
public:
static cliext::vector<Person^> person_data = gcnew cliext::vector<Person^>;
void Dispose()
{
delete person_data;
}
};
的2個錯誤,我得到的是:
error C2605: 'Dispose' : this method is reserved within a managed class
1> did you intend to define a destructor?
error C3766: 'Globals' must provide an implementation for the interface method 'void System::IDisposable::Dispose(void)'
1> c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : see declaration of 'System::IDisposable::Dispose'
感謝您的回覆,我認爲這確實會有訣竅。不知道爲什麼那個析構錯誤不斷出現。 – Dororo 2010-02-08 18:47:04
我似乎無法找到關於釋放析構函數或終結器中的靜態成員的任何信息。也許有人在那裏知道答案並將分享。 – cmw 2010-02-08 19:01:00
靜態成員由.cctor初始化,而不是在應用程序啓動時初始化 – 2010-02-23 16:22:03