重载new和delete后调用构造函数和析构函数顺序
来源:互联网 发布:js函数创建表格 编辑:程序博客网 时间:2024/05/16 01:46
环境:VS2010
问题;探索重载new和delete后构造函数、修改函数的调用顺序
代码:
#include <iostream>using namespace std;class C{ float x,y;public:C(){ cout<<"调用构造函数"<<endl;}~C(){ cout<<"调用析构函数"<<endl;} void show() { cout<<"x="<<x<<'\t'<<"y="<<y<<'\n'; } void *operator new (size_t s) { void *p=new char [s]; cout<<"调用函数new(size_t s),分配空间为:"<<s<<'\n'; return p; } void operator delete (void *p) { delete (p); cout<<"调用函数delete(void *p)\n"; }};int main(void){ C *p1; p1=new C; p1->show(); delete(p1); return 0;}
执行结果:
总结:重载后new时先分配空间,再调用构造函数,delete时先调用修改函数,后释放空间。
- 重载new和delete后调用构造函数和析构函数顺序
- 重载new和delete后调用构造函数和析构函数顺序
- 1、C++关于拷贝构造函数和赋值运算符重载问题的测试程序。因为调用顺序不清,导致内存泄漏new delete
- 七、构造函数和析构函数(一) 默认构造函数、重载构造函数、构造函数和new运算符、析构函数和数组、析构函数和delete运算符
- C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
- 如何重载new和delete函数
- new和delete函数的重载
- new/delete 和 复制构造函数
- 构造函数中调用构造函数new和delete使用小结
- 构造函数和析构函数调用顺序
- 构造函数和析构函数调用顺序实例
- 关于构造函数和析构函数的调用顺序
- C++构造函数和析构函数的调用顺序
- C++构造函数和析构函数的调用顺序
- 析构函数和构造函数的调用顺序
- 调用构造函数和析构函数的顺序
- 构造函数和析构函数调用顺序强化训练
- 构造函数和析构函数的调用顺序
- java.io包详细解说
- IT界名人你认识几个?
- C#中sql备份与还原
- 一个老程序员说的心里话
- 一个java IO的例子
- 重载new和delete后调用构造函数和析构函数顺序
- 实习笔记:几个小问题
- 一位软件工程师的6年总结
- 商业内幕:20家最具创新力的科技创业公司
- EL表达式详解教程
- C++
- 薪酬谈判秘诀
- Unicode与ANSI字符串转换
- 可让你少奋斗10年的工作经验