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) ,你先看着!
------------------------
沒有關系 兩者只是操作上不同.習慣就好.重要的是學習好C++語言.企業中逐漸都是在使用VS2005-VS2008.
------------------------
同時建議購買visual c++2008入門經典 Ivor Horto著 清華大學出版社.  128元 約1200頁
書中解決了你的顧慮,並說明了原因.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM