您的位置:首页 > 编程语言 > C语言/C++

c++中成员初始化列表的问题

2016-05-21 14:30 281 查看
c++中提供了成员列表初始化的方法,我们知道const变量一般是在变量申明的时候就初始化,但是可以通过成员变量的方法动态的改变const变量的值,同时如果类的成员变量是引用,那么我们也必须通过成员列表初始化的方法来初始化,这里我从c++primer里面摘取了成员列表初始化的规则

1,这种格式只能用于构造函数

2,必须使用这种格式来初始化非静态const数据成员

3,必须使用这种格式来初始化引用数据成员

这里我顺便写了一下<<的重载,如果看不懂的话,可以去我之前的一篇文章里面看

代码:

#include<iostream>
using namespace std;
//定义一个类,用于后面定义引用数据成员
class Person{
private:
public:
int age;
//构造函数
Person(){
}
Person(int age){
this->age=age;
}
};
class Student{
private :
Person & person;
const int number;
public :
//构造函数
Student(Person & p,int number):person(p),number(number) {
}
//声明重载<<符号函数
friend ostream & operator<<(ostream & os,const Student student);
};
//实现重载<<符号函数
ostream & operator<<(ostream & os,const Student student){
os<<student.person.age<<":"<<student.number<<endl;
return os;
}
int main(){
Person p(5);
Student student(p,123);
cout<<student;
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++基础学习