Eine Klasse initialisieren



  • Moin.

    Wäre jemand so freundlich und könnte mir aufzeigen wie man folgenden Code richtig macht?

    class ABC_1
    {
    privat:
    int a;
    puplic:
    ABC_1(int zahl) { return a; }
    ~ABC_1();
    };

    class ABC_2
    {
    privat:
    ABC_1 testklasse;
    public:
    ABC_1()
    {
    testklasse(5); // <<- hier möchte ich die Klasse nun inialisieren aber wie?
    }
    ~ABC_1();
    };

    Ich möchte also in einer zweiten Klasse eine andere mit einem Custom Konstruktor initialisieren. oder geht das nur über "new" ?

    Ich hoffe jemand nimmt sich meiner an 🙂



  • ich denk dafür gibts initialisierungslisten!?

    class ABC_1 
    { 
    private: 
    
    int a; 
    
    public: 
    
    ABC_1(int zahl) { a = zahl; }; 
    
    ~ABC_1() 
    { 
    }; 
    
    }; 
    
    class ABC_2 
    { 
    private: 
    
    ABC_1 testklasse; 
    
    public: 
    
    ABC_2() : testklasse(5) 
    { 
    }; 
    
    ~ABC_2() 
    { 
    }; 
    
    };
    

    so solltes hinhaun



  • Nein. So möchte ichs nicht. Ich habe gut 30 dieser Klassen und das sieht A "doof" aus und B will ich ABC_2 Klasse auch über einen Custom Konstrukor initialisieren und daraus dann die kommenden Klassen. Ich wollte das Bespiel nur nicht zu komplziert darstellen. Also es müsste schon IM Funktionskörper stehen.



  • viel anders wirds nicht gehn

    evtl. wär eine genauere problembeschreibung hilfreich...



  • jules schrieb:

    das sieht A "doof" aus

    Der war gut. Heul doch! 🤡

    Also es müsste schon IM Funktionskörper stehen.

    Geht aber nicht. Wenn der Konstruktorrumpf ausgeführt wird, sind bereits alle Member und Basisklassenobjekte konstruiert.



  • OK, dann mach ichs über shared_ptr<>


Anmelden zum Antworten