struct kopieren
-
moins
schreibe eine klasse welche folgende strukturen hat:truct Termin
{
std::string strSTag;
std::string strSDatum;
std::string strSZeit;
};struct Einladung
{
std::string strTops[10];
std::string strMitglieder[20];
std::string strFrauenbeauftr;
std::string strDatum;
std::string strSitzgnr;
};als parameter bekommt der konstruktor die beiden strukturen von einer anderen klasse. wie weise ich diese jetzt den strukturen in meiner klasse zu? muss ich das einzeln mit jedem element der struct machen, oder kann ich das irgendwie kopieren?
gruß
ebrosius
-
Hallo,
ebrosius schrieb:
als parameter bekommt der konstruktor die beiden strukturen von einer anderen klasse. wie weise ich diese jetzt den strukturen in meiner klasse zu? muss ich das einzeln mit jedem element der struct machen, oder kann ich das irgendwie kopieren?
gruß
ebrosiusDu solltest den Zuweisungsoperator, den Ctor und den Copy-Ctor überladen:
struct Termin { std::string strSTag; std::string strSDatum; std::string strSZeit; Termin(const string &s1, const string &s2, const string &s3) : strSTag(s1), strSDatum(s2), strSZeit(s3) {} Termin(const Termin &t) : strSTag(t.strSTag), strSDatum(t.strSDatum), strSZeit(t.strSZeit) {} ~Termin() {} Termin& operator=(const Termin& t) { strSTag = t.strSTag; strSDatum = t.strSDatum; strSZeit = t.strSZeit; return *this; } };Dann kannst du schreiben:
class Foo { Termin termin; public: Foo(const Termin &t) : termin(t) {} //usw... }; Termin meinTermin("","",""); //bin schreibfaul ;) Foo f(meinTermin);MfG
GPC
-
Übrigens: Wenn du den Copy-Ctor und op= gar nicht definierst, spendiert dir dein Compiler eine Default-Version von beidem (die kopieren die struct dann elementweise) - sofern das Standard-Verhalten möglich ist.
-
erstmal vielen dank für eure schnellen antworten

wie sieht das mit der zweiten struct aus mit den arrays?
gruß
ebro
-
ebrosius schrieb:
erstmal vielen dank für eure schnellen antworten

wie sieht das mit der zweiten struct aus mit den arrays?
Mit ner Schleife kopieren.