Kopierkonstruktor oder operator= überladen?



  • Moin,

    hier mal zuerst das Beispiel:

    struct basis
    {
       //verschiedene Typen....
       char cString[64];
       basis() 
       { 
          // .......
          strncpy(cString, "foo", sizeof(cString)); 
          // nicht getestet, sollte eigentlich gehen
       }
    };
    
    struct subType : public basis
    {
       std::string str;
       subType() : basis()
       {
          str = cString;
       }
    };
    

    Ich habe also den Typen basis ohne string (muss so sein) möchte aber für das weitere Arbeiten einen std::string nutzen.

    Nun die Fragen:

    was muss ich tun um folgendes machen zu können:

    basis    bas;
    strncpy(bas.cString, "bar", sizeof(cString));
    subType  sub;
    sub = bas;
    //oder auch
    bas = sub;
    

    Kopierkonstruktor oder operator= überladen?
    Wie genau mache ich was. Was ist die bessere Alternative?
    Und wie kopiere dann innerhalb dieser Funktion die Daten um, ohne jedes Datum einzeln anzufassen?

    Weiß einer Rat?

    Danke und Gruß!



  • Falsches Forum, lass dich mal nach C verschieben...



  • Dappeljuh schrieb:

    Falsches Forum, lass dich mal nach C verschieben...

    Lieber nach C++...



  • Wohin denn jetzt? C? C++? Da C++ von C erbt, würde ich sagen ist C++ nie verkehrt!

    Ach ja, weiß einer ne Lösung zu meinem Problem?


Anmelden zum Antworten