- 对于没有定义构造函数,且全体数据成员为public的类,可以使用显式初始化。
class A
{
public:
char *str;
int i;
}
int main()
{
A a={"One",1};
}
-
上面这种类,只能使用显式初始化,使用这种类,相当于直接给类的成员赋值。
-
对于一般的类,有构造函数、成员私有化,不能使用显式初始化。
class A
{
public:
A(char* str,int i) : _str(str),_i(i){}
private:
char* _str;
int _i;
};
int main()
{
A a[3] = {
"one", 1,
"two", 2,
"three", 3
};//错误
return 0;
}