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

来源:互联网 发布:网络二次元是什么意思 编辑:程序博客网 时间:2024/05/29 02:30

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;     }



0 0
原创粉丝点击