Come posso dichiarare una proprietà in C ++/CLI?
-
19-09-2019 - |
Domanda
Ho una classe in C ++/CLI che mi piacerebbe dare una proprietà. Voglio dichiarare la proprietà in un file di intestazione e quindi implementare quella proprietà in un file .cpp.
Ecco l'intestazione:
public ref class Dude
{
static property Dude^ instance
{
Dude^ get();
}
}
Se dichiaro il file di intestazione e non inserisco nulla nel CPP, ricevo il seguente errore:
1>Dude.obj : error LNK2020: unresolved token (06000001) Test.Dude::get_instance
Da questo ho concluso che dovrei implementare la proprietà come
static Lock myInstanceLock;
Dude^ Dude::get_instance()
{
if(myInstance == nullptr)
{
myInstanceLock.lock();
if(myInstance == nullptr)
{
myInstance = gcnew Dude();
}
myInstanceLock.unlock();
}
return myInstance;
}
Tuttavia, quando compilo questo codice, ricevo un sacco di errori. Il primo errore (gli altri sono il risultato del primo) è:
1>.\Dude.cpp(13) : error C2039: 'get_instance' : is not a member of 'Test::Dude'
Qualcuno può far luce su questo problema?
Soluzione
Cambia l'implementazione in:
Dude^ Dude::instance::get()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow