初始化列表先于构造函数执行
初始化列表只能用于构造函数
初始化列表可以同时初始化多个数据成员
初始化列表存在的必要性:
classCircle{public: Circle(){m_dPi = 3.14;}//错误PRivate: const double m_dPi;}使用初始化列表:
classCircle{public: Circle():m_dPi(3.14){}//正确初始化了m_dPiprivate: const double m_dPi;}Teacher.h#include<string>#include<iostream>using namespace std;class Teacher{public: Teacher(string _name="q",int _age=25,int _m=100); void teach(); void setName(string _name); string getName(); void setGender(string _gender); string getGender(); void setAge(int _age); int getAge(); int getMax();private: string m_strName; string m_strGender; int m_iAge; const int m_iMax;};Teacher.cpp#include"Teacher.h"using namespace std;/*定义一个Teacher类: 自定义有参构造函数 使用初始化列表初始化数据数据成员: 名字 性别 年龄成员函数: 数据成员的封装函数 授课teach另: 定义可以带最多学生的个数,此为常量*/Teacher::Teacher(string _name,int _age,int _m):m_strName("jim"),m_iAge(10),m_iMax(100){ cout<<"Teacher(string _name,int _age,int _m)"<<endl;}void Teacher::teach(){ cout<<"现在上课"<<endl;}void Teacher::setName(string _name){ m_strName=_name;}string Teacher::getName(){ return m_strName;}void Teacher::setGender(string _gender){ m_strGender=_gender;}string Teacher::getGender(){ return m_strGender;}void Teacher::setAge(int _age){ m_iAge=_age;}int Teacher::getAge(){ return m_iAge;}int Teacher::getMax(){ return m_iMax;}int main(){ Teacher t1("sam",12,111); cout<<t1.getName()<<","<<t1.getAge()<<","<<t1.getMax()<<endl; return 0;}Teacher(string _name,int _age,int _m)jim,10,100
新闻热点
疑难解答
图片精选