struct Data
{
int ival;
char *ptr;
};
int main()
{
Data val1 = {0,0};
Data val2 = {1,"Hello World"};
}
缺点:
1)要求类的全体数据成员都是public。
2)将初始化每个对象的每个成员的负担放在程序员身上。这样的初始化是乏味且易于出错的,因为容易遗忘初始化式或提供不适当的初始化式。
3)如果增加或删除一个成员,必须找到所有的初始化并正确更新。
【最佳实践】
定义和使用构造函数几乎总是较好的。当我们为自己定义的类型提供一个默认构造函数时,允许编译器自动运行那个构造函数,以保证每个类对象在初次使用之前正确地初始化。
//P396 习题12.31
//不能通过编译,为什么?
pair
p = {0,2};
/*
*因为pair类型定义了构造函数
*所以尽管其数据成员为public,但还是不能显式的初始化
*/