社区
C++ 语言
帖子详情
指针成员必须在默认构造函数中被初始化???
Cong1221
2015-02-15 01:12:43
一个类中有一个指针成员参数,我看到c++ primer 中说到必须将其在默认构造函数中初始化,但是如果我在类外如下
MyClass myClass;
myClass.p = new int;
发现也是可以的,请问为什么一定要在默认构造函数里面对指针成员初始化呢??有什么考虑?
...全文
294
3
打赏
收藏
指针成员必须在默认构造函数中被初始化???
一个类中有一个指针成员参数,我看到c++ primer 中说到必须将其在默认构造函数中初始化,但是如果我在类外如下 MyClass myClass; myClass.p = new int; 发现也是可以的,请问为什么一定要在默认构造函数里面对指针成员初始化呢??有什么考虑?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
JoeBlackzqq
2015-02-15
打赏
举报
回复
必须将其在默认构造函数中初始化===>当然不对了。理论上可以不初始化。 我们所做的一切一切都只是为了让程序更好,更正确地执行我们想要他执行的指令而已。
kuangbao9
2015-02-15
打赏
举报
回复
第一,出错易于检查; 第二,和楼上一样,当你写较长代码时,你不及时赋值,初始化,后面有可能就会忘了,会导致有的时候编译过了,结果却相差千里。 所以总的来说,那是一种编程良好的习惯吧。小小的提议,见笑了。
mymtom
2015-02-15
打赏
举报
回复
楼主的做法当然可以的。 可是如果你忘记初始化了呢?
300道C++题目
300道C++题目
C++
中
默认构造函数
中
数据
成员
的
初始化
原文地址:http://www.cnblogs.com/coding-wtf/p/5786854.html 构造函数的任务是
初始化
数据
成员
的,在类
中
,如果没有显示定义任何构造函数,编译器将为我们创建一个构造函数,称为合成的
默认构造函数
,合成的
默认构造函数
使用与变量
初始化
相同的规则来
初始化
成员
。即当类
中
的数据
成员
没有在构造函数
中
显示
初始化
,将执行默认
初始化
: 1.对于内置
C++
中
默认构造函数
和构造函数
初始化
列表
1、
默认构造函数
和构造函数 (1)构造函数:C++用于构建类的新对象时需要调用的函数,该函数无返回类型!(注意:是“无”! 不是空!(void))。 (2)
默认构造函数
:
默认构造函数
是在调用时不需要显示地传入实参的构造函数。 一个类如果自己没有定义构造函数,则会有一个无参且函数体也是空的
默认构造函数
。只要程序员定义了构造函数,编译器就不会再提供
默认构造函数
了。 定义
默认构造函数
有两种方式,...
深入探索c++构造函数之一:
默认构造函数
与默认
初始化
1、构造函数的基本概念 每个类都分别定义了它的对象被
初始化
的方式,类通过一个或者几个特殊的
成员
函数来控制其对象
初始化
的过程,这些函数叫构造函数。 关于构造函数: (1)作用:
初始化
对象的数据
成员
,只要对象创建就会被执行。 (2)返回值:无返回值 (3)参数:参数列表可以为空,函数体也可以为空 (4)构造函数重载:一个类可以包含多个构造函数,不同的构造函数之间
必须
在参数数量或者参数类型上有所区别。 (5)构造函数不能被声明为const的,同是当我们创建一个const对象时,只有当构造函数完成之后,对象才能真正
类和对象【二】this
指针
,构造函数和
成员
初始化
列表【超详细】
C++编译器给每个非静态的
成员
函数增加了一个隐藏的
指针
参数,让该
指针
指向当前对象(函数运行时调用该函数的对象),这个
指针
就是this
指针
在函数体
中
所有“
成员
变量”的操作,都是通过该
指针
去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成在创建对象时调用的特殊方法。其主要作用是给对象的
成员
赋值。在C++
中
,构造函数通常没有返回类型,并且不能被声明为const。在创建类的对象时,构造函数自动被调用此外,构造函数可以重载,即可以有多个名字相同的构造函数,但参数列表
必须
不同。
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章