C++空类中有哪些成员函数?
一共 有6个成员函数。
1.构造函数
2.拷贝构造函数(用于从一个已存在的对象创建一个新的对象,只是这个新对象和原始对象相同的)
3.析构函数
4.赋值运算符
5.取址运算符
6.取值运算符const
1 #include<iostream> 2 using namespace std; 3 4 class Empty 5 { 6 Empty(); //构造函数 7 Empty(Empty&); //拷贝构造函数 8 ~Empty(); //析构函数 9 10 Empty& operator=(Empty&); //赋值运算符 11 Empty* operator&(); //取址运算符 12 const Empty* operator&()const; //取址运算符const 13 14 };
注意的是:只有当实际使用这些函数的时候,编译器才会去定义(实现)他们。
拷贝构造函数和赋值运算符重载有什么不同之处?
(1)拷贝构造函数生成新的类对象,而赋值运算符不能。
(2)由于拷贝构造函数是直接构造一个新的对象,所以在初始化这个对象之前不用检验源对象是否和新对象相同,而辅助运算符则要要检验源对象和新对象是否相同,另外赋值运算中如果原来的对象中有内存分配要先把内存释放掉。
番外:什么是移动构造函数?
移动构造函数是C++新增的特性之一,与拷贝构造类似,移动构造函数也是使用一个对象的值设置另一个对象的值,但与拷贝构造函数不同的是,移动构造函数实现的是对象真实的转移,源对象将丢失其内容,其内容将被新对象榨油。拷贝构造和移动构造函数的关系,就像复制粘贴和剪切粘贴的关系,复制粘贴原来的文件还在,结果有两份文件,而剪切粘贴就把原来的文件移动过去了,结果还是只有一份。
合集:
C++语言的特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具