Beim Ändern von Code habe ich einige Funktionen in mehrere Dateien ausgelagert. Ich habe die Dateien controls.cpp
und display.cpp
und ich möchte in der Lage sein, Zugriff auf den gleichen Satz von Variablen in beiden Dateien zu haben. Es macht mir nichts aus, wo sie initialisiert oder deklariert werden, solange die Funktionen in beiden Dateien sie benutzen können.
Das war kein Problem, wenn die Funktionen in der gleichen Datei waren, aber jetzt scheint es fast unmöglich nach einer Stunde Googeln und Versuchen verschiedener Dinge.
Verwenden Sie diese Variablen als extern
d. h.
in einer anderen Datei deklariert dasselbe wie normale globale Variable ...
%Vor%Erstellen Sie zwei neue Dateien:
Globals.h
und alle Variablen deklarieren wie: extern type name;
Globals.cpp
und deklarieren Variablen wie: type name;
Fügen Sie dann #include "Globals.h"
am Anfang von:
Globals.cpp
controls.cpp
display.cpp
Sie können dann möchten, dass einige Funktionen sie initialisieren.
Im Wesentlichen müssen Sie die Variable nur einmal in einer Codedatei deklarieren und sie in den anderen als extern deklarieren (achten Sie darauf, sie NICHT zu initialisieren, wenn Sie sie extern deklarieren, oder einige Compiler ignorieren das extern-Schlüsselwort, Ihnen Compilerfehler geben.)
Das einfachste Verfahren ist die Verwendung eines Makros in einer Header-Datei, beispielsweise:
%Vor%und deklarieren Sie dann Ihre Variablen in der gleichen Header-Datei wie:
%Vor%Geben Sie aus einer beliebigen ONE-Datei im Projekt die Header-Datei ein, etwa:
%Vor%aus dem ganzen Rest, einfach einfach normal, wie folgt:
%Vor%Presto, du bist fertig. Variablen werden nur einmal deklariert und inline initialisiert. Dies ist sehr wartungsfreundlich und erspart Ihnen die Mühe, alles zweimal deklarieren zu müssen.
Alle Deklarationen, die in mehreren Kompilierungseinheiten (.cpp-Dateien) angezeigt werden sollen, sollten in eine Headerdatei aufgenommen werden, die Sie an allen Stellen einfügen, die die Variable, den Typ, die Klasse usw. verwenden müssen.
Dies ist weitaus besser als extern, was im Wesentlichen Ihre Absicht verbirgt, die Deklaration zu teilen.