类和对象 —— 函数的分类以及调用
类和对象 —— 函数的分类以及调用
1、函数的分类
两种分类方式:
按参数分为:有参构造和无参构造
按类型分为:普通构造和拷贝构造
2、函数的调用
(1)括号法
(2)显示法
(3)隐式法
代码演示:
tips:
不要使用拷贝构造函数初始化匿名对象
3、拷贝构造函数调用
C++中拷贝构造函数调用时机通常有三种情况:
-
使用一个已经创建完毕的对象来初始化一个新对象
-
值传递的方式给函数参数传值
-
以值方式返回局部对象
4、构造函数调用规则
默认情况下,C++编译器至少给一个类添加3个函数:
(1). 默认构造函数*(无参,函数体为空)
(2).默认析构函数(无参,函数体为空)
(3).默认拷贝构造函数,对属性进行值拷贝
构造函数调用规则如下:
- 如果用户定义有参构造函数,C++不再提供默认无参构造,但是会提供默认拷贝构造
- 如果用户定义拷贝构造函数,C++不会再提供其他构造函数
5、深拷贝与浅拷贝
浅拷贝:简单拿的赋值拷贝操作
深拷贝:在堆区重新申请空间,进行拷贝操作
浅拷贝带来的问题是堆区的内存重复释放,浅拷贝的问题利用深拷贝来解决
Tips:如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,防止浅拷贝带来的问题
__EOF__
作 者:WKL
出 处:https://www.cnblogs.com/kingwkl/p/15953007.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具