首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

高手来解决以下这道超奇怪的有关问题

2012-02-19 
高手来解决以下这道超奇怪的问题#include iostream.hclassp{public:int*m_pint~p(){if(m_pint)delete[]

高手来解决以下这道超奇怪的问题
#include <iostream.h>
class   p
{
public:

int*   m_pint;
~p()
{
      if(m_pint)
          delete[]   m_pint;
}
};

void   fun(p   p1)
{

}

int   main()
{
p   p1;
p2.m_pint=new   int[10];
fun(p1);
return   0;
}

最后程序会出错,问题我已经找到了,因为在调用fun函数结束后,会调用析构函数,把m_pint的内存给释放掉了,当程序结束后也会调用析构函数,但m_pint已经被释放掉了,所以会出错,我这里想问的是如何避免在函数结束时调用析构函数,或者是如何避免这种情况,大家请别回答用默认的析构函数。

[解决办法]
拷贝构造函数呢?
operator=呢?
这种情况应该实现这两个函数

热点排行