类和对象-初始化列表
李商隐《柳》
曾逐东风拂舞筵,乐游春苑断肠天。
如何肯到清秋日,已带斜阳又带蝉。
实际应用中,构造函数一般用于初始化成员变量,传统的初始化方式代码较为繁琐,可以使用初始化列表,简化代码。
初始化列表
- 用于初始化属性。
- 构造函数():属性1(值1), 属性2(值2),属性3(值3),初始化值固定,无参构造函数。
- 构造函数(属性1,属性2,属性3):属性1(值1), 属性2(值2),属性3(值3),初始化值可以通过传参,有参构造函数。
- 注意在列表时,括号外是属性名称,括号内是值。
#include<iostream>
using namespace std;
#include"circle.h"
class Student
{
public:
string name;
int age;
int score;
// 传统的初始化方式
/*
Student(string ref_name, int ref_age, int ref_score)
{
name = ref_name;
age = ref_age;
score = ref_score;
cout << "name=" << name << " age=" << age << " score=" << score << endl;
}
// 可以传参,相当于有参构造
Student(string ref_name, int ref_age, int ref_score): name(ref_name), age(ref_age), score(ref_score)
{
cout << "name=" << name << " age=" << age << " score=" << score << endl;
}
*/
// 不用传参, 初始化值是固定的,不能通过实例化对象过程改变属性值,相当于无参构造。
Student() : name("HanMeimei"), age(20), score(120)
{
cout << "name=" << name << " age=" << age << " score=" << score << endl;
}
};
void test1()
{
//Student s1("ZhangSan", 10, 99);
Student s3;
}
void main()
{
test1();
system("pause");
}