编程语言
首页 > 编程语言> > C++学习笔记 第二十课 初始化列表的使用

C++学习笔记 第二十课 初始化列表的使用

作者:互联网

学习笔记内容来自:狄泰软件学院 唐佐林老师 的视频,十分感谢您的指导

初始化成员列表

1.初始化成员列表在构造函数的函数体之前
2.初始化成员列表的初始化顺序跟写代码的顺序无关,只跟成员的声明顺序有关

类中的const成员

1.类中的const成员的初始化只能在构造函数的初始化列表中进行初始化
2.类中的const成员会被分配空间
3.类中的const成员的本质是只读变量

注意
1.编译器无法直接得到const成员的初始值,因此无法进入符号表成为真正意义上的常量。
2.构造函数的函数体在执行之前,对象已经被创建好了,构造函数的函数体只不过是为了初始化对象的各种成员

示例程序:

class School
{
private:
    const int ID;
    const string name;

public:
    //执行的顺序是先给ID初始化,再给name初始化,因为ID先声明,name后声明
    School():name("GDUT"),ID(66666)
    {

    }

    void setID(int id)
    {
        int& p = const_cast<int&>(ID);

        p = id;
    }

    int getID()const
    {
        return this->ID;
    }
};


int main()
{
    School s;

    printf("s.ID = %d\n",s.getID());//66666

    s.setID(99999);

    printf("s.ID = %d\n",s.getID());//99999,说明s.ID是只读变量而不是真正的常量

    return 0;
}
苏瓜皮 发布了25 篇原创文章 · 获赞 0 · 访问量 201 私信 关注

标签:初始化,const,int,成员,C++,第二十,ID,构造函数
来源: https://blog.csdn.net/u012321968/article/details/104450426