wlbk.net
当前位置:首页 >> 一样一段程序,为什么在vC++6.0下就可以运行,而在vs2010下就会报错 >>

一样一段程序,为什么在vC++6.0下就可以运行,而在vs2010下就会报错

可能因为版本的问题吧,版本不一样有可能不能实行通用.

编译环境不一样,是有可能出问题.要看具体错误原因

把你的代码格式化吧,看的眼晕..数组边界问题if(a[j]>a[j+1]) 当j=9时 j+1=10,但你的数组大小是10,最后一个是a[9],]没有a[10],所以超出边界

那只能说明这两个编程环境的编译器不同.

平台兼容问题,需要各自在自己的环境下编译.

编译器之间虽然有一定差异,不过内部函数是相通的,应该没什么问题才是. 你可能是操作不当的缘故吧. 没用过vs2010,粗陋的谈了下个人看法. 希望对你有所帮助.

vs2010和vc6.0都是微软推出的集成开发环境,但是vc6.0推出的时间相对很早,所以里面对各种错误的处理比较差.比如同一个错误,可能vs2010能够让你根据他的出错信息准确找到错误,vc6.0在一些情况下就很难做到.而且vc6.0对代码的“格式”要求比较严格,比如变量的定义要放在程序开始,不能再循环中初始化定义一个新的变量等等诸如此类问题.所以有时会导致某些程序可在vs2010中运行但不能再vc6.0中编译通过.vs2010是比较完备的ide,扩展性比较强,比如你可以通过安装一些插件,编写python代码等.

不同的编译环境要求不一样,比如在vs2010上写c的话都会提示scanf警告,还有不能直接定义不指定类型的main函数.没什么大问题,用习惯就好了

VC++6.0跟标准C++差别太大了,vc++8.0向标准C++更靠近了,不过差别应该不大,你按照提示信息稍微修改下应该就好了你给那个程序我编译都没有通过

这个不能返回一个NUM类型的对象,因为在A类里面返回A类有用吗?它会析构掉自身对象的(返回的对象).如图所示 当程序执行完会显示调用3次析构,但你只有两个对象.所以程序不能正常退出.正确的办法是不返回任何东西.因为你的赋值操作已经完成了.错误处改为:void operator=(const num&r) { cout<<"operator=函数被调用!"<<endl;*n=r.get(); }

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com