只能在栈上或者堆上创建对象

http://blog.csdn.net/acdnjjjdjkdckjj/archive/2010/05/29/5633611.aspx

<转者注>

c++给程序员极大的自由,上可面向对象,下可添入汇编代码.

不满意其内存管理么,可以自己写。这就是c++的魅力。

 

只能在栈上或者堆上创建对象

C++中存放变量的地方有三个,分别是全局/静态变量存储区,局部变量存储区即栈,new存放的变量存放在堆上,解题的思路是:
如果只在栈上创建对象则禁止在堆上创建,重写operator new 和operator delete
如果只在堆上创建对象则把析构函数定义为私有的,但是一定要定义一个函数把new的
对象删除掉 void distory () const
  {

   delete this;

}

一、只能在堆上创建对象
  1. #include 2. using namespace std; 3. 4. class A 5. { 6. public: 7. 8. A() 9. { 10. 11. cout<<"dhjj"<distory(); 32. 33. return 0; 34. } 

 

二、只能在栈上创建对象

# #include # using namespace std; # # class A # { # public: # # A() # { # # cout<<"dhjj"<

 

 

你可能感兴趣的:(iostream,delete,class,存储,汇编,2010,C++内存管理)