重载new和delete后调用构造函数和析构函数顺序
2011-12-16 21:34
309 查看
环境:VS2010
问题;探索重载new和delete后构造函数、修改函数的调用顺序
代码:
总结:重载后new时先分配空间,再调用构造函数,delete时先调用析构函数,后释放空间。
问题;探索重载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); getchar(); return 0; }执行结果:
总结:重载后new时先分配空间,再调用构造函数,delete时先调用析构函数,后释放空间。
相关文章推荐
- 重载new和delete后调用构造函数和析构函数顺序
- 重载new和delete后调用构造函数和析构函数顺序
- 七、构造函数和析构函数(一) 默认构造函数、重载构造函数、构造函数和new运算符、析构函数和数组、析构函数和delete运算符
- C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
- C++C++中构造函数与析构函数的调用顺序
- C++类的构造函数与析构函数的调用顺序
- C++多个类中构造函数与析构函数的调用顺序
- 类的构造函数与析构函数调用顺序
- c++深/浅拷贝 && 构造函数析构函数调用顺序练习题
- 调用构造函数和析构函数的顺序
- C++学习笔记(调用构造函数和析构函数的顺序)
- onEnter , onExit 和 构造函数,析构函数在调用顺序上面的区别
- C++学习笔记(7)----类的数组中构造函数和析构函数的调用顺序
- C++构造函数的执行顺序及析构函数的执行顺序-多种情况:普通继承、虚拟继承、类构造函数调用其它类的构造函数
- 派生类构造函数和析构函数的调用顺序(C++)
- 构造函数、拷贝构造函数、赋值函数、析构函数的调用顺序
- 第十一周 阅读程序4 类的继承构造函数与析构函数调用的先后顺序
- 子对象构造函数和析构函数的调用顺序
- C++学习笔记(5)——基类、派生类的构造函数、析构函数的调用顺序
- 构造函数和析构函数,拷贝构造,赋值重载,调用练习