Klasse mit Attribut vom selben Klassentyp
-
Hallo Community,
warum ist folgendes nicht möglich:
class MeineKlasse { private: MeineKlasse array[]; public: MeineKlasse(); };Bzw wie kann ich dann erreichen, das die Instanzen der Klasse "MeineKlasse" ein Array besitzen das auf andere Instanzen dieser Klasse verweist ("kennt")?
Danke schon mal im Voraus!
-
Das ist nicht möglich, weil so wie du es schreibst es kein Verweis ist. Und eine Klasse kann sich natürlich nicht selbst enthalten. Das würde zur unendlichen Rekursion führen, ein Objekt so einer Klasse wäre unendlich gross.
Was du möchtest kann du über Zeiger erreichen:
class MeineKlasse { private: MeineKlasse* array[123]; // grösse MUSS angegeben werden public: MeineKlasse(); };Wenn du willst dass die Anzahl der Verweise (Zeiger) dynamisch änderbar ist, dann kannst du statt einem Array einen std::vector verwenden:
#include <vector> class MeineKlasse { private: std::vector<MeineKlasse*> vec; public: MeineKlasse(); };
-
Najajajaja schrieb:
warum ist folgendes nicht möglich:
class MeineKlasse { private: MeineKlasse array[]; public: MeineKlasse(); };Wieso sollte es möglich sein? Ein bischen logisches Verständnis sollte schon existieren.
-
Janjan schrieb:
Wieso sollte es möglich sein?
Wahrscheinlich weil es in anderen Sprachen mit Referenzsemantik möglich ist.
