1. 程式人生 > >【轉】Visual C++ 和 C++ 有什麽區別?

【轉】Visual C++ 和 C++ 有什麽區別?

業界 流行 編譯器 gtk+ 語言 開發 多種實現 廠商 計算

有位同學問我“Visual C++和C++有什麽區別?”,這的確是初學者會感到困惑的問題,比較常見。除此之外,還有“先學C++好,還是先學Visual C++好?”,都屬於同樣的概念不明的問題,就比如問“英語和英語詞典有什麽區別”一樣。要弄清這個問題的答案,就要明白語言,工具,庫,標準的概念。可以參考我之前發的 Programming Language 那篇筆記。

一門程序語言,例如C++,根本上是一套語法體系,是邏輯領域上的規則集。而要真正使用計算機來應用程序語言,就需要有相應的語言實現,歷史上,C++有多種實現,比如早期的cfront, 曾經的Turbo C++,現在流行的Visual C++和GCC。這些特定實現,以工具

的方式存在於計算機中,比如編譯器,鏈接器等。

但是單純的語言實現是解決不了實際需求的,因此許多實現都提供了額外的程序,初期各種實現所帶的庫都是不同的,這就導致了同一語言不同實現之前移植的難度,因此業界就形成了一個標準委員會,為C++制訂一套標準庫,包含IO庫, STL等。除去標準庫外,還需要各種程序庫來實現各個領域的需求,就有了各種各樣的界面庫,網絡庫等,比如C++常見的界面庫有MFC,WTL,wxWidgets, GTK+,Qt,為了方便程序員使用這些庫,工具廠商便將一些庫直接集成到工具包中一起發售,比如Visual C++中除了對STL的支持外,還包含了MFC和ATL兩個程序庫。

所以說,C++是語言,Visual C++是工具集,MFC是程序庫。要解決實際問題,開發應用程序,語言、工具和程序庫三方面的學習是缺一不可的,而在程序庫的學習中,標準庫又是重中之重。

【轉】Visual C++ 和 C++ 有什麽區別?