没有合适的资源?快使用搜索试试~ 我知道了~
c++能不能给类的成员变量在声明的时候初始化? - life_limbo - 博客园1
需积分: 0 0 下载量 108 浏览量
2022-08-03
14:25:51
上传
评论
收藏 916KB PDF 举报
温馨提示
试读
3页
1. Re:Qt中关于release版本程序异常结束 2. Re:c++中指向对象的指针为NULL时可 3. Re:c++中指向对象的指针为NULL时可 5.
资源推荐
资源详情
资源评论
12/6/2019 c++能不能给类的成员变量在声明的时候初始化? - life_limbo - 博客园
https://www.cnblogs.com/blog-vincent-0x1F7/p/9668524.html 1/3
博客园 首页 新随笔 联系 管理 订阅 随笔- 13 文章- 0 评论- 5
c++能不能给类的成员变量在声明的时候初始化?
能。可能早先的版本不能,但是c++11标准下能。有人说在声明的时候初始化相当于在构造函数中初始化,其实不
是的,成员变量初始化的顺序为:先进行声明时初始化,然后进行初始化列表初始化,最后进行构造函数初始化,
如下代码:(另外初始化列表中初始化的顺序是和变量声明的顺序一样,而与列表中的顺序无关)
1 1 #include "stdafx.h"
2 2 #include <iostream>
3 3 using namespace std;
4 4 class A
5 5 {
6 6 public:
7 7 int a = 1;
8 8 A() {}
9 9 A(int a_):a(a_){}
10 10 A(int a_, bool b) :a(4) { a = a_; }
11 11 };
12 12
13 13 int main()
14 14 {
15 15 A a1, a2(3), a3(5, true);
16 16 cout << "a1.a=" << a1.a << endl;
17 17 cout << "a2.a=" << a2.a << endl;
18 18 cout << "a3.a=" << a3.a << endl;
19 19 system("pause");
20 20 return 0;
21 21 }
结果如图,可看出,初始化列表初始化的变量值会覆盖掉声明时初始化的值,而构造函数中初始化的值又会覆盖掉
初始化列表的,足以看出初始化的顺序:
昵称: life_limbo
园龄: 1年5个月
粉丝: 3
关注: 2
+加关注
< 2019年12月 >
日 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11
搜索
找找看
谷歌搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔档案
2018年9月(7)
2018年8月(6)
最新评论
1. Re:Qt中关于release版本程序异常结束
问题
现在Qt5.9.4又莫名其妙出现这个问题,不
知道什么原因,累了累了,这是玄学,不搞
了
--life_limbo
2. Re:c++中指向对象的指针为NULL时可
以调用对象成员函数吗
事实上通过指针调用成员函数只需要知道这
个指针指向的是什么类型就能找到函数,无
需管指针指向地址以及指向对象的具体信
息,而指针类型是在声明指针的时候就已知
了
--life_limbo
3. Re:c++中指向对象的指针为NULL时可
以调用对象成员函数吗
其实这里不加if(this==NULL)判断也可,
因为下一句并没有使用到this指针,一样可
运行;但是要注意,并不是没有显式使用th
is指针就是没有使用this指针了,成员函数
中任何对类中非静态成员变...
--life_limbo
4. Re:Qt安装
vincent_20160427
资源评论
雨后的印
- 粉丝: 14
- 资源: 288
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功