Instanz in Konstruktor erzeugen

Frankdfe

Erfahrenes Mitglied
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:
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ß

Frank
 
Re: Re: Instanz in Konstruktor erzeugen

besser so:
Code:
class B
{
	A* pInstanzA;

	B( )
	{
		pInstanzA = new A(100);
	}
	~B()
	{
		delete pInstanzA;
	}
                     

}

Zeiger gehören halt genauso wie Schleifen zu C++ :confused:
 
Ich begreife wohl das Problem nicht ganz.

Code:
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:
B( ) : instanzA( 100 )
{
}

Wozu da Zeiger nötig sein sollen, leuchtet mir nicht ein. Sollte ich euch da irgendwie missverstanden haben?
 
Zurück