Konstructor wird 2 mal Aufgerufen ( einmal implizierter Konstructor ohne Parameter)
-
o4kareg schrieb:
Hallo Zusammen!
Vor kurzem habe ich an potenziell gefährliche Feature auf C++ getroffen,
dass in einem Konstruktor einer Klasse, oder vorher, wird impliziert
ein leeres Konstruktor von einer member-Variable aufgerufen, und wenn ich den
leeren Konstructor von member-Variable gelösht hatte, meckert der Kompiler dass er es finden kann.
PseudoKode:class B{ int x; B(){ x = 43; cout << "::B called" << endl; } B(int v){ x = v; cout << "::B called" << endl; } } class A{ B var public: A(){ var = B(42); }Hier wird B zweimal aufgerufen, erst mit leeren Konstruktor, dann mit Parameter.
Und wenn dabei ich sag mal 100 Mib allokiere, ist es schon ein Problem.Wie soll man generell von implizierter Constructor- aufrufe weg sein?
Und was soll ich bei dem Fall tun?
MFgAHTUNG LEUTE HIER MACHE ICH KEINE VERERBUNG!!!!!!!!!!!!!!!
-
-
Du suchst Initialisierungslisten:
A() : var(42) {}
-
SeppJ schrieb:
Du suchst Initialisierungslisten:
A() : var(42) {}Oh danke sehr, was für komische SChreibweise
-
o4kareg schrieb:
Oh danke sehr, was für komische SChreibweise
Das ist nicht komisch, das ist einfach so.
-
daddy_felix schrieb:
o4kareg schrieb:
Oh danke sehr, was für komische SChreibweise
Das ist nicht komisch, das ist einfach so.