Gegenseitiges Verwenden von Klassen
-
Ich habe da ein paar Propleme bezüglich gegenseitigem Verwendens von Klassen.
// RA.h #ifndef RADEF #define RADEF #include "RB.h" class RA { public: int i; int f(RB o); int fs(void); }; #endif
// RB.h #ifndef RBDEF #define RBDEF #include "RA.h" class RB { public: int i; int f(RA o); int fs(void); }; #endif
Ich bekomme hierbei immer Fehlermeldungen.
Wie kann man die beheben?
-
// RA.h #ifndef RADEF #define RADEF // Kein #include mehr: Problem gelöst und Abhängigkeiten verringert class RB; // Deklaration: Referenzen und Zeiger auf diesen Typen sind jetzt erlaubt class RA { public: int i; // Tststs, wer wird denn öffentliche Daten haben? ;P int f(const RB& o); // Parameter muss deshalb als Referenz übergeben werden int fs(); }; #endif
-
Danke! Funktioniert Klasse
Sollte auch nur eine kleine Testklasse für ein größeres Projekt sein.
Hat man dadurch eigentlich leichte Geschwindigkeitseinbusen (Rein Informell)?
-
Hängt wohl vom Objekt ab, denke ich... Normalerweise ist by reference (auf ein const-Objekt) aber der übliche Weg, Objekte als Parameter zu übergeben, um unnötige Aufrufe des Copy-Konstruktors zu vermeiden.