ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
602
602
EMPFEHLEN
-
Hallo!
Ich habe zwei Klassen A und B;
Wie kann ich erreichen, dass beim Aufruf des Konstruktors von B eine Instanz von A erzeugt wird ?
Also in etwas folgendes:
Code :1 2 3 4 5 6 7 8 9 10
class B { A instanzA; B( ) { static A dummy(100); instanzA = dummy; } }
Das obige Beispiel dürfte funktionieren, das "static" ist aber nicht sehr schön. Wie kann ich das anders lösen?
Gruß
FrankDer Glückliche phantasiert nie. (Sigmund Freud)
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)
Daraus folgt: Die Genie's sind nicht glücklich.
-
09.02.04 14:27 #2
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
Code :1 2 3 4 5 6 7 8 9
class B { A* pInstanzA; B( ) { pInstanzA = new A(100); } }
-
Danke; das ist besser als mein Versuch.
Geht das irgendwie auch ohne einen Zeiger zu verwenden?Der Glückliche phantasiert nie. (Sigmund Freud)
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)
Daraus folgt: Die Genie's sind nicht glücklich.
-
09.02.04 18:38 #4
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
besser so:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
class B { A* pInstanzA; B( ) { pInstanzA = new A(100); } ~B() { delete pInstanzA; } }
Zeiger gehören halt genauso wie Schleifen zu C++
-
10.02.04 09:04 #5
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Ich begreife wohl das Problem nicht ganz.
Code :1 2 3 4 5 6 7 8 9 10
class B { A instanzA; B( ) { static A dummy(100); instanzA = dummy; } }
Also B hat ein A als Member? instanzA IST doch bereits eine Instanz von A, daher wohl auch der Name. Dann wird instanzA doch ohnehin im Konstruktor von B automatisch mit dem Defaultkonstruktor des A-Typs initialisiert.
Wenn instanzA jedoch stattdessen mit 100 initialisiert werden soll, würde ich das in der Initialisierungliste machen. Der B-Konstruktor sähe dann so aus:
Code :1 2 3
B( ) : instanzA( 100 ) { }
Wozu da Zeiger nötig sein sollen, leuchtet mir nicht ein. Sollte ich euch da irgendwie missverstanden haben?Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
Danke Kachelator, das wollte ich haben
Der Glückliche phantasiert nie. (Sigmund Freud)
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)
Daraus folgt: Die Genie's sind nicht glücklich.
-
10.02.04 15:25 #7
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Freut mich!
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
Ähnliche Themen
-
Instanz einer Klasse über deren Namen erzeugen
Von Marcel G im Forum PHPAntworten: 3Letzter Beitrag: 18.12.07, 15:38 -
Objekt Instanz erzeugen ohne Konstruktor aufzurufen
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 30.03.07, 00:25 -
Type variable verwenden um Instanz zu erzeugen?
Von Romsl im Forum JavaAntworten: 1Letzter Beitrag: 09.03.06, 10:19 -
Konstruktor im Konstruktor aufrufen?
Von zarrandreas im Forum .NET ArchivAntworten: 1Letzter Beitrag: 03.06.05, 16:45 -
sql handle als instanz einer klasse per konstruktor
Von Transmitter im Forum PHPAntworten: 4Letzter Beitrag: 28.10.02, 00:47





Zitieren
Login






