2016-04-04 8 views
1

Bin nicht sicher, ob ich in die richtige Spur gehe oder nicht. Ich muss ein parametrisiertes Objekt in einer anderen Klasse initialisieren, bin mir aber nicht sicher, wie das geht. Zu meinem Punkt, um den Code-Schnipsel zu löschen istparametrisierte Objektinitialisierung in einer anderen Klasse

class base 
{ 
private: 
    bool data_present; 
    public: 
    /*base() 
    { 
    cout<<" base :default constructor called"<<endl; 
    data_present = false; 
    }*/ 
    base(bool present) 
    { 
    data_present = present; 
    } 

    bool present() 
    { 
    return data_present; 
    } 
}; 

class derived :public base 
{ 
    private: 
    int _value; 
    public: 
    /*derived() 
    { 
    cout<<" derived :default constructor called"<<endl; 

    }*/ 
    derived(int value):base(1) 
    { 
    _value = value; 
    } 
}; 

class test 
{ 
    public: 
    test(int data) 
    { 
    cout<<"test: parameter's constructor "<<endl; 
    } 
    derived return_data() 
    { 
    return d; 
    } 

    private: 
    derived d; 
}; 

int main() 
{ 
    test t(100); 
    return 0; 
} 

Meine Absicht ist es, das abgeleitet parametrisierte Konstruktor in Test Konstruktor zu initialisieren, so dass Wert von 100 wird in _value.Can jemanden ausgefüllt werden Bitte helfen Sie mir zu diesem Thema.

+0

Wie im Konstruktor von 'abgeleitet 'gezeigt, wissen Sie bereits etwas über Konstruktor * Initialisierer * Listen. Sie müssen mehr über sie lesen. –

Antwort

1

Sie könnten member initialize list verwenden, um eine nicht statische Elementvariable mit dem angegebenen Konstruktor zu initialisieren, genau wie in dem Konstruktor der Klasse derived für das Basisunterobjekt.

Verwandte Themen