初始化列表的好处
- 高效
- 解决变量二义性的问题: 到底是把形参赋值给成员变量,还是把成员变量赋值给形参,容易把人搞晕
- 解决const类型成员变量首次赋值的问题:我们知道const常量,只能初始化一次,注意构造函数的代码块中是不能对const成员初始化的,会报错
#include <iostream>
class Girl
{
public:
Girl()
:name("lucy"),age(18)
{
std::cout<<"我是构造器,我是第一个被执行"<<std::endl;
};
char *getName(){
return name;
}
int getAge(){
return age;
}
private:
char name[20];
int age;
};
int main(int argc, char const *argv[])
{
Girl girl;
std::cout << girl.getName() << std::endl;
std::cout << girl.getAge() << std::endl;
return 0;
}
#include <iostream>
class Girl
{
public:
Girl(std::string name, int age)
:name(name),age(age)
{
std::cout<<"我是构造器,我是第一个被执行"<<std::endl;
};
std::string getName(){
return name;
}
int getAge(){
return age;
}
private:
std::string name;
int age;
};
int main(int argc, char const *argv[])
{
Girl girl("Lucy",20);
std::cout << girl.getName() << std::endl;
std::cout << girl.getAge() << std::endl;
return 0;
}