Membervariable einer Klasse nicht mit Standardkonstruktor verwenden



  • Hallo zusammen,

    ich hab mal - glaube ich - eine ganz blöde Frage...

    Ich hab eine Klasse A die keinen Standardkonstruktor hat sondern einen Integer übergeben bekommt. Nun möchte ich in Klasse B eine Membervariable von Klasse A verwenden...

    private:
      KlasseA m_KlasseA(100);
    

    Aber der Compiler meldet mir immer den Fehler 'Konstante'... was hat das zu bedeuten bzw. wie kann ich eine Membervariable verwenden vom Typ der Klasse A?



  • Die Member der Klasse werden erst im eigenen Ctor initialisiert - wenn du nicht den Default-Ctor verwenden willst/kannst, über die Initialisierungsliste:

    class test
    {
      subclass m_sub;
    public:
      test() : m_sub(100) {}
    };
    


  • mach doch folgendes :

    private:
      KlasseA *m_KlasseA;
    

    Im Konstruktor :

    m_KlasseA = new KlasseA(100);
    

    Im Destruktor wieder deleten

    Es gibt bestimmt auch noch einen anderen Weg, aber dieser fällt mir gerade nicht ein.

    Gruß SciFi



  • SciFi_ausgeloggt schrieb:

    mach doch folgendes :

    private:
      KlasseA *m_KlasseA;
    

    ...

    Wieso sollte man das tun ?
    Oversized für dieses Anliegen und importiert überflüssig Gefahren/Aufwand.

    Ich stimme auch für Initialisierungsliste...

    Gruß,

    Simon2.


Anmelden zum Antworten