warum geht das nicht???
-
hi!
mal ne ganz blöde frage:
Warum funktioniert die übergabe in dem beispiel nicht? Bekomme einen leeren string retour???
(Das ganze ist nur schematisch dargestellt....)class Page { public: CString a; a = "trallala"; } class Trans { Page p; CString name; name = p.a; }
-
Du brauchst Konstruktoren:
class Page { public: CString a; Page() : a("trallala"){} } class Trans { Page p; CString name; Trans() : name(p.a){} }
Mich wundert, dass du keine Fehlermeldung bekommen hast!
-
/edit: weg damit: damit mein ich ich hab blödsinn geschrieben, weil ich nicht aufmerksam war
-
@david was meinst du mit weg damit???
@KPC Da kann ich dir nicht folgen fürchte ich, kenne mich bei deinen ausführungen nicht aus. Da hast du was falsch verstanden.
Page hat natürlich einen konstruktor, ich schrieb ja ...nur schematisch dargestellt...
: a("trallala"){} diese Zeile ist mir mehr als suspekt...
-
diese Zeile ist eine elementinitialisierungsliste, anstatt dass du im ctor schreibst:
class schlecht { string x; public: schlecht () { x = "blob"; } };
kannst du sowas machen:
class gut { string x; public: gut () : x("blob") {} };
mehr info zum problem, mehr code, etc. geben dir bessere antworten
-
aha danke, aber ich habe ja einen konstruktor, da passiert zwar nichts, muß ja auch nicht. ich befülle x mit einem wert. Wenn ich dann eine instanz von der klasse in einer anderen klasse erstelle bekomme ich nicht den wert von x heraus.
DAS verstehe ich nicht...
-
Poste mal bitte ein Minimalbeispiel, welches man ausführen kann, vielleicht können wir dir dann helfen.