设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1437|回复: 5
打印 上一主题 下一主题

新来这里,问一道改错题,希望得到你们的指点,谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 01:29:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我正在自考计算机应用,周围也没有人懂C++,希望大家能够帮助我这样的学生

麻烦解释下答案


假设有一个正确定义的类Test,改正主程序中的错误.
void main(){
test *two[2]={test(4,5),test(6,8)};
for(i=0;i<2;i++)
delete two[i];
}
2#
发表于 2009-11-4 01:29:12 | 只看该作者
delete two[i];
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 01:29:12 | 只看该作者
我还不知道你那个类具体是怎么写的,
就现在来看,肯定是delete two[i];
有问题了,
因为,
如果指针指向不是用new分配的内存地址,则在该指针上使用delete是不合法的。
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 01:29:13 | 只看该作者
嗯,delete要和new一起作用,
有人说这么改
test *two[2];
two[0]=new test(4,5);
two[1]=new test(6,8);

还有那个for循环条件也不对


虽然知道答案了,但是这是 特殊函数和成员 一章的题,这题目不搭界...
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-4 01:29:15 | 只看该作者
能不能改成一些比较简单的复合程序结构啊。。。这样就能避免结构错误了。。。
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-4 01:29:16 | 只看该作者
yinhorse 在 2008-8-6 00:33 的发言:

嗯,delete要和new一起作用,
有人说这么改
test *two[2];
two[0]=new test(4,5);
two[1]=new test(6,8);

还有那个for循环条件也不对


虽然知道答案了,但是这是 特殊函数和成员 一章的题,这题目不搭界.. ...


void main(){
test *two[2];
two[0]=new test(4,5);
two[1]=new test(6,8);
for(i=0;i<2;i++)
delete two[i];
}


没有定义I
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 15:29 , Processed in 0.094680 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表