C++之类的const成员变量和成员函数2
2016-04-07 10:49
597 查看
在C++之类的const成员变量和成员函数中,我们在Student类中,声明了一个const成员变量max_length,每一个类的对象都初始化为同一个固定的值。而我们通常需要每一个类的对象都要初始为不同的const成员变量。
以下面为例:const成员变量school,一旦初始化,就不可以更改了。具有const成员变量时,必须采用参数初始化列表写构造函数
我们看到构造函数必须使用参数初始化列表:
而不能采用以下的方式,进行
以下面为例:const成员变量school,一旦初始化,就不可以更改了。具有const成员变量时,必须采用参数初始化列表写构造函数
class Student{ private: string name; int age; float score; //const成员变量 const string school; //定义静态成员变量 static int number; static float total; public: //Student(string name,int age,float score); //有const成员变量,必须有参数初始化列表, Student(string name,int age,float score,string s):name(name),age(age),score(score),school(s){ number++; total += score; } //拷贝构造函数中,const成员变量的初始化,用初始化列表 Student(const Student & s):school(s.school){ this ->name = s.name; this ->age = s.age; this ->score = s.score; number++; total += score; }; ~Student(); void setSchool(string s); void setName(string n); string getName()const; void setAge(int a); int getAge() const; void setScore(float s); float getScore() const; void say() const; static float getAverage(); //运算符的重载 //bool operator== (const Student &s) const; //用友元函数重载等于 运算符 friend bool operator== (const Student &s,const Student&s1); };
我们看到构造函数必须使用参数初始化列表:
//有const成员变量,必须有参数初始化列表, Student(string name,int age,float score,string s):name(name),age(age),score(score),school(s){ number++; total += score; }
//拷贝构造函数中,const成员变量的初始化,用初始化列表 Student(const Student & s):school(s.school){ this ->name = s.name; this ->age = s.age; this ->score = s.score; number++; total += score; };
而不能采用以下的方式,进行
Student(string name,int age,float score,string s):name(name),age(age),score(score){
<span style="white-space:pre"> </span>school = s; number++; total += score; }
相关文章推荐
- 第五届蓝桥杯决赛C\C++B组——Log大侠
- C++实验3—选择结构程序设计-多分段函数求值
- c++实验3-个人所得税计算器
- c++实验3-个人所得税计算器
- C语言中的atan和atan2
- c++第三次实验。个人所得税计算器
- C++第三次实验(个人所得税计算器)
- C++第三次作业
- c++作业3多分段函数求值,定期存款利息计算器,本月有几天?
- C++服务器学习之VIM的常用命令
- C++中虚函数工作原理和(虚)继承类的内存占用大小计算
- 第五届蓝桥杯决赛C\C++B组——出栈次序
- C++删除目录和复制目录函数
- C++ 传参数 拉起程序
- Libcaptcha CAPTCHA 图片的 C 语言库
- C/C++程序员桌面壁纸---简尚黑
- c++作业2
- C++第三次实验——个人所得税
- C++ map嵌套使用 链接
- #if defined和#if !defined(c语言的宏定义)