#include<iostream>
#include<vector>
using namespace std;
class Person
{
public:
string name;
int age;
string address{ "监利" };//类内初始化
};
int main()
{
Person p{ "王伟",18,"武汉"};//采用列表初始化类的对象,列表中的参数顺序应该和类中定义成员的顺序一致,且参数数量不能大于类中定义的成员的数量,如果参数少于类中的成员数量,那么剩余的成员将采用值初始化,但是提供类内初始化的成员不受影响
cout << p.name << endl;
cout << p.age << endl;
cout << p.address << endl;
}
输出结果为:
王伟
18
监利
———————————————————————————————————————————
满足使用列表初始化对象成员的三个条件:
- 类没有定义任何的构造函数
- 没有基类,也没有定义virtual函数
- 所有成员都是public的
参考C++primer第五版