Eine nichtstatische member-Referenz muss relativ zu einem bestimmten Objekt Singleton-Klasse, C++
Habe ich eine singleton-Klasse. Ich möchte einen Wert zuweisen, der auf ein Struktur-member. Aber der compiler wirft einen Fehler wie A nonstatic member reference must be relative to a specific object
.
Bitte helfen Sie mir, wie zu lösen, das gleiche.
class abc{
static abc* m_selfInst;
public:
struct abcd{
int a;
}abcd;
abc* GetInstance();
};
abc* abc::m_selfInst = NULL;
abc* abc::GetInstance()
{
if(m_selfInst == NULL)
{
m_selfInst = new abc();
}
return m_selfInst;
}
int main()
{
abc *ab = abc::GetInstance(); //Error Occurs here
abc::abcd.a = 5; //Error occurs here too
//cout <<ab.abcd.a << "\n";
return 0;
}
InformationsquelleAutor Rasmi Ranjan Nayak | 2013-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
GetInstance
solltestatic
Funktion.Zugang zu
a
sollte mit einer Variablen vom Typabc
.struct
abcd
und Objekt des Typsabcd
namensabcd
ist wirklich verwirrend.Wahrscheinlich sollte es
typedef struct
gthen kann ich nicht in der Lage, Zugriff auf die Struktur name vom main, also was soll ich tun?name Struktur natürlich.
:- Klasse name fehlt aus der drop-down-Liste und der compiler wirft einen Fehler wie
type name is not allowed
. ein Beispieltypedef struct abcd{...};.
main(){ab->abcd.a=5;}.At abcd the error is coming as
Typ-name ist nicht erlaubt"Was machst du? Warum
typedef
? Verwendenstruct struct_name {...} abcd;
wo struct_name ist der name der Struktur. Möglicherweise werden Sie versuchen, zu Lesen-Bücher über C++?Bekam ich die Antwort. Thnaks für Ihre Hilfe.
InformationsquelleAutor ForEveR
den
GetInstance()
Methode deklariert werden müssenstatic
, sonst kann nur aufgerufen werden, auf eine Instanz vonabc
.Hier
abc::abcd
ist Art. Vermutlich finden Sie auf derabcd
Instanz derabc
Instanz wies aufab
:Sollten Sie wirklich unterlassen Sie es, Instanzen und Typen die gleichen Namen (wie in
struct abcd
Instanzabcd
).ab
,abc
, undabcd
s.InformationsquelleAutor juanchopanza