Ich versuche, den folgenden Code auszuführen:initialisieren Membervariablen mit mehreren Konstruktor ruft
#include <iostream>
using namespace std;
class ABC {
private:
int x, y;
public:
ABC(){
cout << "Default constructor called!" << endl;
ABC(2, 3);
cout << x << " " << y << endl;
}
ABC(int i, int j){
cout << "Parameterized constructor called with parameters "<< i << " " << j << "!" << endl;
x = i;
y = j;
cout << x << " " << y << endl;
}
};
int main(){
ABC a;
return 0;
}
Ich erhalte die folgende Ausgabe:
Standard-Konstruktor aufgerufen!
Parametrierter Konstruktor mit Parameter 2 3 aufgerufen!
-858993460 -858993460
sollte nicht die Membervariablen mit den Werten 2 und 3 initialisiert?
'ABC (2, 3);' erstellt eine lokale temporäre Instanz von 'ABC'. –
Mögliches Duplikat von [Warum sollte ich die Elementinitialisierungsliste verwenden?] (Http://stackoverflow.com/questions/926752/why-should-i-prefer-to-use-member-initialization-list) – LogicStuff
@ πάνταῥεῖ Wie sollte ich die Änderungen am selben Objekt vornehmen? – Ashish