鱼C论坛

 找回密码
 立即注册
查看: 4364|回复: 1

c++的几个问题

[复制链接]
发表于 2012-9-22 13:03:39 | 显示全部楼层 |阅读模式
1鱼币
11、析构器都是虚函数(。。。可是是怎么实现的呢?没有自定义的虚函数怎么办?它不能继承啊,如果基类没有子类有怎么办?)
自定义一个构造函数和一个复制构造函数,那个原来的编译器帮我们做的复制构造函数还在么???构造函数呢???

编译器会帮我们定义合成赋值操作符么??
自己定义的合成赋值操作符如果返回的不是引用会怎么样?

最佳答案

查看完整内容

关于析构函数,只要你自己定义的不是虚函数,它就不是虚函数。编译器帮你合成的也不是虚函数。这种类就不是准备给别人继承的,如果继承了,也绝不能用多态,否则很可能出现内存泄漏。 自定义一个构造函数和一个复制构造函数,那个原来的编译器帮我们做的复制构造函数还在么???构造函数呢??? 你自己定义了,编译器就不再帮你合成了。 编译器会帮我们定义合成赋值操作符么?? 会,其内容就是每个成员的浅复制。 ...
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-22 13:03:40 | 显示全部楼层
关于析构函数,只要你自己定义的不是虚函数,它就不是虚函数。编译器帮你合成的也不是虚函数。这种类就不是准备给别人继承的,如果继承了,也绝不能用多态,否则很可能出现内存泄漏。

自定义一个构造函数和一个复制构造函数,那个原来的编译器帮我们做的复制构造函数还在么???构造函数呢???

你自己定义了,编译器就不再帮你合成了。


编译器会帮我们定义合成赋值操作符么??
会,其内容就是每个成员的浅复制。

自己定义的合成赋值操作符如果返回的不是引用会怎么样?
一点问题都没有,你试试写void也可以,只不过这时候不能够连续赋值而已。C++查函数的时候只看函数名和参数,不看返回值,所以你可以随便写返回值类型
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-15 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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