我正在尝试了解类的默认构造函数的工作,但无法弄清楚这种情况:
情况1:
class A
{
public:
int m;
string s;
};
然后我创建这个类的对象:
a)A a; // Result: compiler initializing m with garbage value
b)A a = A(); // Result : compiler initializing m with garbage value
案例 2:现在我s
从班级中删除了字符串:
class A
{
public:
int m;
};
一)A a; // Result: when try to access m I get run time error
二)A a = A(); //Result: m is initialized to zero
Q1) 为什么案例 1 和案例 2 存在差异?
Q2) 如果我在这两种情况下都为我的类提供默认构造函数,那么 a) 和 b) 会是一样的吗?