C++程序改错题,好像是D类有问题,但是我看不出哪里有问题,请高手指教下,谢谢啦。

#include<iostream>usingnamespacestd;classB{int*m_ip;public:B(){m_ip=newint[3];cout<<"... #include<iostream>
using namespace std;
class B
{
int *m_ip;
public:
B(){ m_ip=new int[3]; cout<<"B() m_ip="<<m_ip<<endl; }
~B()
{
delete[] m_ip;
cout<<"~B()"<<endl;
}
};
class D: public B
{
int *m_iq;
public:
 D(){ m_iq=new int[10]; cout<<"D() m_iq="<<m_iq<<endl; }
  ~D(){ delete[] m_iq; cout<<"~D()"<<endl; }
};
void main()
{
for(int i=0; i<3; i++)
{
B* m_bp=new D; 
delete m_bp;  
}   
}
展开
 我来答
莫云今次
2013-01-06 · TA获得超过244个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:144万
展开全部
代码没错,。。但是你用了汉语的空格。。在指定的行号将空格删除。。改用英文的空格
追问
我把空格都改了一边,还是不行啊 你能告诉我是哪里用了汉语的空格么。
arongustc
科技发烧友

2013-01-06 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:6037万
展开全部
有派生类的类的析构函数必须是virtual
你的delete m_bp由于~B不是virtual,不会调用D::~D导致m_iq泄漏
追问
一般的习惯是 只要是析构函数都是要设置为虚函数的是吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友98039f2
2013-01-06
知道答主
回答量:18
采纳率:0%
帮助的人:8万
展开全部
下面说的对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式