C++构造函数和析构函数什么情况下会用
2024-08-23 23:09:41
析构函数:
1. 对象生命周期结束,被销毁时;
2. delete 指向对象的指针时;
3. delete 指向基类对象的指针时,其析构函数是虚函数;
4. 在嵌套关系中,对象A是对象B的成员,当对象B执行析构函数时,对象A的析构函数也会被调用;
构造函数:
1. 在声明一个普通对象的时候会调用构造函数
2. 如果只是声明一个指针对象,则不会执行构造函数;
3. 声明了一个指针对象,并为指针对象分配空间才会执行构造函数。
4. 在建立临时对象的过程中会调用构造函数,eg:
class A{
public:
A(){x=;}
A(int _x){ x = _x;}
A operator+(A& c);
private:
int x;
};
A A::operator+(A& c)
{
return A(x+c.x);
}
在这代码中,return 语句中的 A(x+c.x)是建立一个临时对象 ,它没有对象名,是一个无名对象。return 语句将此临时对象作为函数返回值。
最新文章
- SSH免密码登录
- 【JS基础】数组
- 前端工程优化:javascript的优化小结
- ahjesus在asp.net中还可以通过设置HttpCookie对象的过期时间为DateTime.MinValue来指定此Cookies为跟随浏览器生效
- JAVA Day8
- 1047. Student List for Course (25)
- Java运算符优先级
- 在Mac OS X 通过抓包、“第三方下载工具”加速下载、安装APP或系统
- 【转】使用PHP创建基本的爬虫程序
- C++拾遗(一)关于main()函数
- 【原创】leetCodeOj ---Construct Binary Tree from Preorder and Inorder Traversal 解题报告
- Java 集合系列之一:JCF集合框架概述
- input 输入框 change 事件和 blur 事件
- python学习之思维导图
- Virtualbox的centos7 nat和桥接网络配置
- linux命令学习之:systemctl
- 将Linux默认的OpenJDK替换为Oracle JDK
- svn.SvnX
- leetCode题解之Product of Array Except Self
- 类型“Microsoft.Office.Interop.Word.ApplicationClass”错误 4317 无法嵌入互操作类型