2013-05-16 5 views
18

Betrachten wir zwei Klassen A und BPass Parameter zu Basisklassenkonstruktor während Abgeleitete Klasse-Objekt erstellen

class A 
{ 
public: 
    A(int); 
    ~A(); 
}; 

class B : public A 
{ 
public: 
    B(int); 
    ~B(); 
}; 


int main() 
{ 
    A* aobj; 
    B* bobj = new bobj(5);  
} 

Nun ist die Klasse B erbt A.

Ich möchte ein Objekt B erstellen. Ich bin mir bewusst, dass das Erstellen eines abgeleiteten Klassenobjekts auch den Basisklassenkonstruktor aufruft, aber das ist der Standardkonstruktor ohne Parameter.

Was ich will ist, dass B einen Parameter (sagen wir 5), und übergeben Sie es an den Konstruktor von A. Bitte zeigen Sie Code, um dieses Konzept zu demonstrieren.

+1

B :: B (int val): A (val) {} – Andrew

+2

Vielleicht haben Sie die destructor nehmen Argumente machen wollen, nicht aussehen wie ein Tipp für mich. Und keine Notwendigkeit von '!!'. Down-Vote zurückgesetzt, Remark gelöscht. –

Antwort

25

Verwenden Basiselement Initialisierung:

class B : public A 
{ 
public: 
    B(int a) : A(a) 
    { 
    } 
    ~B(); 
}; 
+0

Danke ... genau das, was ich gesucht habe – CodeCrusader