2009-08-24 6 views
4

J'ai une classe en C++/CLI que j'aimerais donner à une propriété. Je veux déclarer la propriété dans un fichier d'en-tête, puis implémenter cette propriété dans un fichier .cpp.Comment transférer une propriété en C++/CLI?

est ici l'en-tête:

public ref class Dude 
{ 
    static property Dude^ instance 
    { 
     Dude^ get();  
    } 
} 

Si je déclare le fichier d'en-tête et ne mettez rien dans le cpp, je reçois l'erreur suivante:

1>Dude.obj : error LNK2020: unresolved token (06000001) Test.Dude::get_instance 

De cela, je conclus que je doit implémenter la propriété comme

static Lock myInstanceLock; 

    Dude^ Dude::get_instance() 
    { 

     if(myInstance == nullptr) 
     { 
      myInstanceLock.lock(); 
      if(myInstance == nullptr) 
      { 
       myInstance = gcnew Dude(); 
      } 
      myInstanceLock.unlock();    
     } 
     return myInstance; 
    } 

Cependant, lorsque je compile ce code, j'obtiens un tas d'erreurs. La première erreur (les autres sont le résultat du premier) est:

1>.\Dude.cpp(13) : error C2039: 'get_instance' : is not a member of 'Test::Dude' 

Quelqu'un peut-il faire la lumière sur ce problème?

Répondre

10

Modifier la mise en œuvre à:

Dude^ Dude::instance::get() 
+0

Merci pour votre aide! –

Questions connexes