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