某同事从网上下了一些之前的代码,有VC5也有VC6的代码...............
对于一些在
for(int i = 0; i < 5; ++i)
{
.... //do sometihing
}
i = 3;
类似这种代码.之前由于VC6出时,好像还没有完全按C++标准来实行........
所以最后一句
i = 3;
居然还可以引用....
而 vc03.之后的版本默认最后一句是会报错的,
如果一定要让其通过,
可以在
cl时加入参数 /Zc:forScope-
来让其通过....
或者可在在选项卡中作设置
说到这,我copy一下C++的标准..
如果没有记错的话,VC6应是98年的吧,而后来再打开SP6...]
对于我来说,现在简记就是
C++98 -->C++03-->TR1(05)-->C++11(11)
再
下面转自wiki
http://zh.wikipedia.org/wiki/C%2B%2B
發展歷史
Stroustrup工作起於1979年的C with Classes。這個構思起源於 Stroustrup 做博士論文時的一些程式撰寫經驗。他發現Simula具備很利於大型軟體開發的特點,但Simula的執行速度太慢,無法對現實需求發揮功效;BCPL雖快得多,但它過於低階的特性,使其不適於大型軟體的開發。當Stroustrup開始在貝爾實驗室工作時,他有分析UNIX核心關於分散式計算的問題。回想起他的博士論文經驗,Stroustrup開始為C語言增強一些類似Simula的特點。之所以選擇C,是因為它適於各種用途、快速和可移植性。除了C和Simula之外,同時也從其它語言中取得靈感,如ALGOL 68、Ada、CLU以及ML。剛開始時,類別、衍生類別、儲存類型檢查、內聯和預設參數特性,都是透過Cfront引入C語言之中。1985年10月出現了第一個商業化發佈。
1983年,C with Classes改命名為C++。加入了新的特性,其中包括虛擬函式、函式名和運算子多載、參考、常數、使用者可控制的自由空間儲存區控制、改良的型別檢查,以及新的雙斜線(//)單行註解風格。1985年,發佈第一版《C++程式設計語言》,提供一個重點的語言參考,至此還不是官方標準。1989年,發佈了Release 2.0。引入了多重繼承、抽象類別、靜態成員函式、常數成員函式,以及成員保護。1990年,出版了The Annotated C++ Reference Manual。這本書後來成為標準化的基礎。稍後還引入了模板、例外處理、命名空間、新的強制类型转换,以及布爾。
隨著C++語言的演變,也逐漸演化出相應的標準程式庫。最先加進C++標準函式庫的是串流I/O程式庫,其用以取代傳統的C函式,如printf和scanf。隨後所引入的程式庫中最重要的便是標準模板庫,簡稱STL。
多年後,一個聯合的ANSI-ISO委員會於1998年對C++標準化(ISO/IEC 14882:1998)。在官方釋出1998標準的若干年後,委員會處理缺陷報告,並於2003年發佈一個C++標準的修正版本。2005年,一份名為Library Technical Report 1(簡稱TR1)的技術報告釋出。雖然還不是官方標準的一部分,不過它所提供的幾個擴展可望成為下一版C++標準的一部分。幾乎所有目前仍在維護的C++編譯器皆已支援TR1。
目前最新的C++标准是2011年9月发布的ISO/IEC 14882:2011[1],又称C++0x或C++11。
雖然C++免專利,但標準文件本身並不是免費的,尽管标准文档不是免费的,但是很容易从网络中取得,最简单的就是C++标准文档之前的最后一次草稿版本,它与标准的差别几乎只在于排版上。