C++ Elementobjekte

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:

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();
 }
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... :)
 

Neue Beiträge

Zurück