析构函数初始化列表

Posted james_lee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了析构函数初始化列表相关的知识,希望对你有一定的参考价值。

class Demo
{
public:
    Demo(){}
    Demo(string name, int age){
           m_strName = name;
           m_iAge = age;
    }                            //构造函数可以重载

private:
    string m_strName;
    int m_iAge;
};

class Demo
{
public:
    Demo(){}
    Demo(string name = "James", int age = 24){
           m_strName = name;
           m_iAge = age;
    }                        //构造函数形参列表可以赋初值,但这种情况不行,全部赋初值会与前面的无参构造函数冲突

private:
    string m_strName;
    int m_iAge;
};

class Demo
{
public:
    Demo(){}
    Demo(string name, int age):m_strName(name),m_iAge(age){}    //初始化列表,可用于初始化const修饰的
                                                                //成员变量,初始化列表先于构造函数执行,效率高
private:
    const string m_strName;
    const int m_iAge;
};

 

以上是关于析构函数初始化列表的主要内容,如果未能解决你的问题,请参考以下文章

构造函数constructor 与析构函数destructor

继承中的构造析构函数调用顺序

第46课 继承中的构造与析构

第46课 继承中的构造与析构

C++--继承中的构造与析构父子间的冲突

第四十六课继承中的构造与析构