002
11.09.2008, 14:58 Uhr
ao
(Operator)
|
Problem: Die .h-Files inkludieren sich gegenseitig, und die Klasse, die als erste inkludiert wird, kennt die andere nicht.
Der Geheimtipp heißt "Vorwärts-Deklaration":
C++: |
class Neuron; // Vorwärts-Deklaration macht den Namen bekannt.
class NeuronConnection {
Neuron & source; // geht hier gut. Neuron & target;
// .... };
|
Umgekehrt genauso (NeuronConnection vorwärts-deklarieren vor der class Neuron {... }; )
Da du innerhalb der Deklaration class Neuron { } nur Referenzen auf NeuronConnection benutzt, ist Wissen über den Aufbau von NeuronConnection hier nicht erforderlich - es reicht zu wissen, dass es sich um einen Datentyp handelt.
Erst bei der Implementierung der Klasse (im .cpp-File) muss bekannt sein, wie man mit einem NeuronConnection-Objekt umgehen kann.
Dann noch die #include-Anweisungen aus den .h-Files raus und in die .cpp-Files rein, und fertig. Dieser Post wurde am 11.09.2008 um 15:00 Uhr von ao editiert. |