Verschiedene Konstruktoren
-
Hi,
In meiner Klasse habe ich zwei Konstruktoren.
class MyClass { public: int m_i; inline MyClass() {i=0;}; inline MyClass(int i) {m_i=i;}; };
Was würde passieren, wenn ich z.B. soetwas schreibe...
[cpp]
MyMyClassVec.push_back(MyClass(5));
[cpp]Würde dann i erst mit null und dann mit fünf initallisiert werden, oder nur mit fünf?
Danke,
Daniel
-
es wird nur der konstruktor verwendet den du aufrufst, in dem fall nur die 5
-
Das inline kannst du weglassen bzw. der Compiler würde bei deinem angegebenen Ctor wahrscheinich von alleine "inlinen".
Des weitere würde ich die Initialisierungsliste nutzen, dafür ist sie da
class MyClass { public: int m_i; MyClass() : m_i(0) {}; MyClass(int i) : m_i(i) {}; };
-
Aha,
und was müsste ich schreiben, damit er bei MyClass(int i) auch MyClass() aufruft?
Danke,
Daniel
-
Das geht nicht.