鱼C论坛

 找回密码
 立即注册
查看: 1500|回复: 4

关于构造函数的调用问题

[复制链接]
发表于 2014-11-11 12:55:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
对于已经定义好的一个类 A,如果执行“A a,b(3),*p”语句,那么该构造函数共被调用了几次?是不是对于构造函数来说,如果创建了一个对象就已经开始调用了构造函数么?那么如果是指针,是不是只有给它分配空间了才会调用构造函数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-12 02:08:05 | 显示全部楼层
应该是A a,b[3],*p;吧?
如果是这样,构造函数调用4次,A *p;是一个类的指针,不是类的对象所以不调用构造函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-12 11:08:05 | 显示全部楼层
A a调用了一次无参构造函数
A b(3)调用了一次单参构造函数
A* p调用了零次构造函数

只要产生出新对象,就要调用构造函数,如上题的A a和A b(3)都分别产生了一个新对象,所以分别调用了一次构造函数。
而A* p没有产生A类型的对象,所以没有调用构造函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2014-11-12 13:54:43 | 显示全部楼层
不理解,有什么区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-12 16:11:23 | 显示全部楼层
产生指针是不用调用构造函数的,所以就两次,一次默认构造函数,一次带参的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表