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

分析程序运行结果,找出程序中存在的有关问题

2012-05-30 
分析程序运行结果,找出程序中存在的问题请能看懂的给我详细讲解下,谢谢!#includeiostreamusing namespac

分析程序运行结果,找出程序中存在的问题
请能看懂的给我详细讲解下,谢谢!
#include<iostream>
using namespace std;
class X
{
public:
X() {p=new int[2];cout<<"X(). ";}
~X() {delete [] p;cout<<" ~X()."<<endl;}
private:
int *p;
};
class Y:public X
{
public:
Y() {q=new int[1023];cout<<"Y():T:q= "<<q<<".";}
~Y() {delete [] q;cout<<"~Y(). ";}
private:
int* q;
};
int main()
{
for(int i=0;i<8;i++)
{
X* r=new Y;
delete r;
}
return 0;
}

[解决办法]
类Y申请的内存空间没有被释放
建议把构析函数定义为虚函数
[解决办法]
基类的析构函数应该定义成虚函数,以便在多态调用的情况下派生类能够正确的调用自身的析构函数

热点排行