c++ für Dummies
-
noobLolo schrieb:
Klasse b(a);was hat das für ein effect? kopiert das a in b?
Das erzeugt ein neues Objekt b als Kopie von a. b existiert unabhängig von a, ist also keine Referenz oder Zeiger oder sonstwas und somit auch unbedingt Zählungswürdig!
-
noobLolo schrieb:
Klasse b(a);was hat das für ein effect? kopiert das a in b?
Das ruft den Kopierkonstruktor auf, welcher vom Compiler automatisch generiert wird.
Du musst also noch das hier einfügen:
Klasse ( const Klasse& r ) { ++InstanzZaehler; }Damit definierst du den Kopierkonstruktor selbst und kannst also auch die Instanz hoch zählen.
-
noobLolo schrieb:
Klasse b(a);was hat das für ein effect? kopiert das a in b?
Genau. Manchmal sieht man auch diese Schreibweise:
Klasse b = a;In diesem Fall sind die beiden äquivalent.
-
cool danke, wieder was dazu gelernt

-
Nachdem ich mich jetzt darum gekümmert habe, konnte ich die Methode von NoobLolo oder so nachvollziehen. Im Gegensatz zur Methode von Nexus, die ich persönlich, für möglich gehalten hatte und selbst auch getestet hatte, meckert der Kompiler/Linker da nicht.
Daher Lob, Preis und Anerkennung für NoobLolos (oder so) Lösung.
-
Der Supercoder schrieb:
Nachdem ich mich jetzt darum gekümmert habe, konnte ich die Methode von NoobLolo oder so nachvollziehen. Im Gegensatz zur Methode von Nexus, die ich persönlich, für möglich gehalten hatte und selbst auch getestet hatte, meckert der Kompiler/Linker da nicht.
Würdest du bitte genauer sagen auf was du dich beziehst, und was der Compiler für einen Fehler ausgibt (Da der Kopierkonstruktor hier relevant ist...).
-
Wieso sollte eine nicht funktionsfähige* Klasse kopiert werden??
Da fehlt mir irgendwie der Zusammenhang.
* Im Sinne des Pflichtenheftes
-
Der Supercoder schrieb:
Im Gegensatz zur Methode von Nexus, die ich persönlich, für möglich gehalten hatte und selbst auch getestet hatte, meckert der Kompiler/Linker da nicht.
Was für eine Methode? Kannst du ein wenig konkreter werden?
Der Supercoder schrieb:
Wieso sollte eine nicht funktionsfähige* Klasse kopiert werden??
Wenn du Instanzen einer Klasse nicht kopieren willst, verbiete Kopierkonstruktor und Zuweisungsoperator. Alles andere ist keine vernünftige Option.