Katzenmann
Grünschnabel
Hi zusammen,
ich bin grade dabei mir C++ anzueignen. Ich hab da vielleicht auch eher eine theoretische Frage.. Also:
Wenn ich mit der Hilfe von Elementobjekten in der Datenstruktur einer Klasse (z.B: "C") Objekte vom Typ einer anderen Klasse (z.B. "A") einfügen möchte, dann muss ja laut Literatur der Konstruktor der Klasse A anders aufgerufen werden:
Langer Code, gar kein Sinn, meine Frage jetzt: Warum konstruiere ich Klassen nicht generell mit dieser Schreibweise? Verbraucht das mehr Speicher & ist es langsamer? Es könnte ja sein, dass ich im Verlauf der Entwicklung eines Programms eine x-beliebige Klasse nochmal als Objekt verwenden möchte, oder?
Ich hoffe die Frage ist nicht zu krank...
ich bin grade dabei mir C++ anzueignen. Ich hab da vielleicht auch eher eine theoretische Frage.. Also:
Wenn ich mit der Hilfe von Elementobjekten in der Datenstruktur einer Klasse (z.B: "C") Objekte vom Typ einer anderen Klasse (z.B. "A") einfügen möchte, dann muss ja laut Literatur der Konstruktor der Klasse A anders aufgerufen werden:
Code:
#include <iostream.h>
#include <conio.h>
class A
{ public: int i;
A(int k) : i(k) // sonst ja eigentlich A(int k) {i=k;} :(
{ cout<<"\nKonstruktor der Klasse A "; };
};
class B
{ public: float f;
B(float g) : f(g)
{ cout<<"\nKonstruktor der Klasse B "; };
};
class C : public B
{ public: char s;
// als Datenelement der Klasse C wird ein Objekt a der
// Klasse A verwendet
A a;
C(float g, char t) : a(7), B(g){s=t;
cout<<"\nKonstruktor der Klasse C "<<" i= "<<a.i<<" ";};
};
// Hauptprogramm mit Nutzung der Klassen A, B, C
void main()
{ cout<<"Nutzung der Klassen A, B und C\n";
A a(5); // Instanziierung eines Objektes a der Klasse A
cout<<"i= "<<a.i<<"\n";
B b(2.222); // Instanziierung eines Objektes b der Klasse B
cout<<"f= "<<b.f<<"\n";
C c(-1.11,'%'); // Objekt c der Klasse C
cout<<"f= "<<c.f<<" s= "<<c.s<<"\n";
cout<<"\nProgrammende";
getch();
}
Ich hoffe die Frage ist nicht zu krank...
