创建对象时,首先根据成员默认值进行赋值,然后再调用构造函数。
class A { int x = 3, y; public: void out() { cout << x << " " << y; } }; int main() { A a; a.out(); return 0; }
输出:3 -858993460
默认构造函数什么都不做,不会把未初始化的变量设为0
class A { int x = 3, y; public: A() { x=2, y = 4; } void out() { cout << x << " " << y; } }; int main() { A a; a.out(); return 0; }
输出:2 4
构造函数中重新对x进行了赋值。