Statische Klasse zum speichern von Daten
Ich bin ziemlich neu in C++ - Sprache. Ich verwende es mit Qt ein cross-Plattform-Benutzeroberfläche.
Das Benutzer-interface zeigt verschiedene Graphen und Diagramme durch Verwendung der gleichen Daten. Also ich würde gerne meine gespeicherten Daten in einer Klasse (Data_Class) zugänglich von allen anderen Klassen.
In der Daten-Klasse, ich bin mit privaten statischen Variablen und öffentliche statische Methoden (get/set).
Was mir nicht klar ist, wie der Zugriff auf die Daten der Klasse von den anderen Klassen. In anderen Worten, wie man Werte in Class_B (aus Data_Class) nach Schreibe ich Sie in Class_A (zu Data_Class).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Davon aus, dass diese syntax ist eine gezielte Frage:
In
ClassA
:Vergessen Sie nicht, fügen Sie
Data_Class
statische member-Definitionen, zum Beispiel indataclass.cpp
:Andernfalls erhalten Sie eine
undefined reference
linker-Fehler.Können Sie auch prüfen, mit singleton-Muster (nach Kommentare, singleton ist schlechte Idee, und Sie sollten es wenn möglich vermeiden) als Aubin vorgeschlagen, die kümmern sich um das hinzufügen neuer statische member-Definitionen:
Verwendung:
Oder gehen mit wenig komplexer, aber flexibler Dependency injection die ist laut wiki:
new/delete
Müll. Hinweis: wie Sie wissen, ist Ihre Anwendung schließen und aufrufen mussDestroyInstance
? Hinweis: Wenn Sie eine statische Funktion die lokalen Variablen initialisiert? Hinweis: Ist C++ ein Konstrukt, weit überlegen Zeiger wenn der Zeiger in der Frage nicht (oder sollte nicht) immer werdenNULL
? Hinweis: Ist C++ haben, bedeutet für die Speicherzuordnung weit überlegen dynamische Zuordnung gegebenenfalls?Angesichts dieser zwei-Klassen-Deklarationen:
Haben Sie Zugriff auf die Methoden von B wie dieses:
static
auf die definition, nur die Deklaration. Wenn ich mich Recht erinnere, ist die definition außerhalb der Klasse nicht mehr kompilieren mit ihm.