vc6.0与标准C++
你的很多书指的是国人写的那些老书吧,vc6.0是98年的,98年以后C++标准才正式制定出来vc6.0对C++标准才支持86%,你说你学它干嘛?再说你现在只是学习,出去才用,软件这方面有更新十分快,C++马上就出下一代标准了(C++0x)vc马上要出2010了,你说你该用哪个?——vc2008
在给你加上具体的区别:(我以前回答过的问题)
visual C++6.0对C++标准(std)的支持只达到86%,按microsoft官方声称,visual studio 2008(visual C++9.0)对C++的支持达到了98%(但实际上也没这么高)我用的就是visual studio 2008。非常简单的一个程序
for (int i = 0; i != n; ++i)
//....
for (int i = 0; i != n; ++i)
在6.0中不能通过编译(i redefination i定义了两次),但在2008中则可以通过,因为上述语句是完全符合C++标准的,其中每一个i都有自己的作用域,第一个i的作用域是第一个for的{}内,第二个则是第二个for{}内。
还有你如果使用过标准库中的容器,算法等东西的话,我想6.0的运行结果会让人很头疼,很郁闷,基本上错误一大堆!
上面是2008中的标准程序不能在6.0中用的两个例子(一个事核心语言:for中变量的作用域,一个事对标准模板库或标准库的支持)
下面给你举一个6.0能运行的东西,在2008里被认为是错误的。(最常见的)
#include <iostream.h>
#include <math.h>
#include <.....h>
等都是错误的,在C++标准(C98)<1998>之后,标准库规定所有的(标准库)头文件统一去掉后缀(.h),从C语言中继承来的头文件统一给前面加上前缀c,一样也没有后缀
所以上面的两个例子要该为
#include <iostream>//C++原有的头文件
#include <cmath>//从C继承来的头文件
另外当你使用这些的时候,不要忘了给下面添加一句话using namespace std;
这里意思是使用std命名空间。
另外你还可以用using std::cout;
using std::cin;
using std::endl;
using std::sqrt;等一一把你要使用的列出来
更酷的表示是在你的程序中给每一个cout,cin,endl。。。都加上前缀(std::,是不是很繁琐啊!
也许你知道这些,这只不过是为了说明6.0和2008的区别而引入的!(我以前回答过的问题)
要学好C++,好好弄两本老外写的书,好好学学!我相信你能学好的!必要的话,好好学学英语,看英文原版的,登英文网站,学习C++,毕竟C++是外国的,那些人对C++的内部机制比较了解,当然你也就能学到了本质上的东西!
顺便给你推荐C++Primer(4th) ,你先看着!
在给你加上具体的区别:(我以前回答过的问题)
visual C++6.0对C++标准(std)的支持只达到86%,按microsoft官方声称,visual studio 2008(visual C++9.0)对C++的支持达到了98%(但实际上也没这么高)我用的就是visual studio 2008。非常简单的一个程序
for (int i = 0; i != n; ++i)
//....
for (int i = 0; i != n; ++i)
在6.0中不能通过编译(i redefination i定义了两次),但在2008中则可以通过,因为上述语句是完全符合C++标准的,其中每一个i都有自己的作用域,第一个i的作用域是第一个for的{}内,第二个则是第二个for{}内。
还有你如果使用过标准库中的容器,算法等东西的话,我想6.0的运行结果会让人很头疼,很郁闷,基本上错误一大堆!
上面是2008中的标准程序不能在6.0中用的两个例子(一个事核心语言:for中变量的作用域,一个事对标准模板库或标准库的支持)
下面给你举一个6.0能运行的东西,在2008里被认为是错误的。(最常见的)
#include <iostream.h>
#include <math.h>
#include <.....h>
等都是错误的,在C++标准(C98)<1998>之后,标准库规定所有的(标准库)头文件统一去掉后缀(.h),从C语言中继承来的头文件统一给前面加上前缀c,一样也没有后缀
所以上面的两个例子要该为
#include <iostream>//C++原有的头文件
#include <cmath>//从C继承来的头文件
另外当你使用这些的时候,不要忘了给下面添加一句话using namespace std;
这里意思是使用std命名空间。
另外你还可以用using std::cout;
using std::cin;
using std::endl;
using std::sqrt;等一一把你要使用的列出来
更酷的表示是在你的程序中给每一个cout,cin,endl。。。都加上前缀(std::,是不是很繁琐啊!
也许你知道这些,这只不过是为了说明6.0和2008的区别而引入的!(我以前回答过的问题)
要学好C++,好好弄两本老外写的书,好好学学!我相信你能学好的!必要的话,好好学学英语,看英文原版的,登英文网站,学习C++,毕竟C++是外国的,那些人对C++的内部机制比较了解,当然你也就能学到了本质上的东西!
顺便给你推荐C++Primer(4th) ,你先看着!
------------------------
没有关系 两者只是操作上不同.习惯就好.重要的是学习好C++语言.企业中逐渐都是在使用VS2005-VS2008.
------------------------
同时建议购买visual c++2008入门经典 Ivor Horto著 清华大学出版社. 128元 约1200页
书中解决了你的顾虑,并说明了原因.
书中解决了你的顾虑,并说明了原因.