Je veux créer un vecteur global de ma propre classe d'objets appelée "Person". Cependant, le compilateur dit queLa classe C++ Ref n'est pas membre de System :: IDisposable; problème d'implémenter 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'
Alors je levai les yeux comment mettre en œuvre IDisposable (que je sais maintenant est utilisé principalement pour les ressources non gérés), mais encore ne peut pas sembler mettre en œuvre ce qui suit:
ref class Globals : System::IDisposable
{
public:
static cliext::vector<Person^> person_data = gcnew cliext::vector<Person^>;
void Dispose()
{
delete person_data;
}
};
Les 2 erreurs que je reçois sont:
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'
Merci pour votre réponse, je pense que cela va effectivement faire l'affaire. Aucune idée pourquoi cette erreur de destructeur continue à venir cependant. – Dororo
Je n'arrive pas à trouver d'informations sur la libération des membres statiques dans les destructeurs ou les finaliseurs. Peut-être que quelqu'un connaît la réponse et partagera. – cmw
Les membres statiques sont initialisés par le .cctor, pas au démarrage de l'application –