Membervariable mit nicht std constructor initialisieren



  • Hi,

    folgendes Beispiel:

    class a
    {
    	a( int d ) { };
    };
    class b 
    {
    	a d(12);
    };
    

    Ich bekomme den Fehler

    error C2059: Syntaxfehler: 'Konstante'
    

    Warum kann man nicht was anderes als den std Constructor benutzen?



  • class A
    {
    	A( int d ) { };
    };
    class B 
    {
    	B( int d )
            :     m_a( d )
            {}              
    
            A m_a;
    };
    

    Erklärung: Du musst Membervariablen im Constructor initialisieren. Der Standard Constructor nimmt für die Member auch den Standard Constructor, und in A hast du keinen.



  • tuii schrieb:

    ...

    class a
    {
    	a( int d ) { };
    };
    class b 
    {
    	a d(12);
    };
    

    Ich bekomme den Fehler

    error C2059: Syntaxfehler: 'Konstante'
    

    ...

    Der Fehler passt aber nicht zum Quellcode ....
    Insgesamt steh ich ja auf "minimale Codebeispiel", aber hier ist doch das Kürzen ein wenig übertrieben geraten.

    tuii schrieb:

    ...
    Warum kann man nicht was anderes als den std Constructor benutzen?
    ...

    Kannst Du .... musst Du aber definieren.

    Gruß,

    Simon2.


Anmelden zum Antworten