首页 > 编程 > C++ > 正文

C++构造函数初始化列表

2019-11-08 20:21:18
字体:
来源:转载
供稿:网友

初始化列表先于构造函数执行

初始化列表只能用于构造函数

初始化列表可以同时初始化多个数据成员

 

初始化列表存在的必要性:

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

 

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选