automatische Member initalisierung nach Konstruktor?



  • folgends:

    class A{
    
      A(){
       this->add(...);  
      }
    
      void add(..){
      }
    
    };
    

    Nun ja, wenn ich ein objekt von A erzeuge, sollen zusätlich A objekte als unter Objekt zu A erzeugt werden. Problem ist nur, das ich erst unterobjekt ertzeugen kann wenn A basis objekt erzeugt ist, was aber erst nach dem kosntrutkor der fall ist.

    Bisher muss ich das A objekt erzeugen, und dann über reine extra methode bzw. extra aufruf die unterobjekte erzeugen..

    Gibt es eine möglich keit das A nach seiner erzeuge eine mehtode aufruf umd seine unterobjekte zu erzeugen?



  • Wo genau ist jetzt das Problem? Im Ctor-Rumpf von A hast du ein vollständig konstruiertes A-Objekt vorliegen, mit dem du arbeiten kannst. Das könnte höchstens Probleme geben, wenn du mit virtuellen Methoden arbeitest, die in abgeleiteten Klassen neudefiniert werden:

    class A
    {
      virtual void add(...);
      A()
      { add(...); } //ruft immer die Basis-Version von add() auf
    };
    


  • Das heist.....

    class A{ 
    
      A(){ 
    
    // .. hier ist A schon vollständig erzeug
       this->add(...);   
      } 
    
      void add(..){ 
      } 
    
    };
    

    WEn ich genau drüber nachdenke ist das ja auch logisch;)


Anmelden zum Antworten