C++是C語言的擴展,它融合了3種不同的編程傳統——C語言代表的過程性語言傳統、C基礎上添加的類代表的面向對象(OPP)語言的傳統、C++模板支持的通用編程傳統。 ——《C++ primer plus(5th)》
C++在C的基礎上添加了opp和通用編程特性,但沒有對C組件做大的改動,所以它是C的超集。所以它們也可以廣義稱為C語言。
但是它們的程序設計哲學卻差別很大,C是問題來適應語言;C++是語言適應問題;所以也可以說是兩種語言。
至於先學C還是先學C++,專家也意見不一,主要是因為:相對打基礎來說,彙編無疑是重要的,但 畢竟太生澀,所以C是最好的選擇,而且不論何種語言,算法仍然是核心,而C最適合培養算法素養。
而對於C++來說,先學習C,可能會形成慣性思維,過分強調過程算法,雖然這也是重要的,可對於OPP來說,難免忽略了C++的優異特性未免浪費。
如果以後只想搞搞個人應用或者熱愛計算機技術,先學C無疑是對的,到一定程度再學彙編,這兩門搞好,破解軟體、個人應用就不錯了,
如果有興趣遊戲開發,再學C++,如果對網頁開發有興趣,那就直接學JAVA。C++據說全世界沒有一個程式設計師能真正完全掌握它。
C和C++代碼要通過一個編譯器把它翻譯成機器指令,然後由連接器加入相關庫代碼和系統啟動代碼形成目標作業系統的可執行文件格式,即windos的EXE或Linux的BIN文件。這組工具加上相關的函數庫也就可稱為開發環境。
Visual C++也就是一種開發環境,所謂windows窗口類,可以理解為是一個圖形函數庫,它支持C++語言使用圖形函數來繪製窗口,添加窗口組件如窗口菜單等。
由於C++是C的超集,所以Visual C++同樣可以編譯純C語言,可以作為C語言的編譯工具。
C和C++都有很多系統平臺的編譯器,如windows的VC++,linux的Gcc等等,所以如果源碼中如果僅僅只使用自編的函數模塊和標準庫函數的話,它們可以不修改或很小的改動就可以在平臺間通用,執行結果一模一樣。如果使用了系統調用、不能通用的圖形庫和函數庫就不行了。
還有很多的免費編譯器可選擇,主要是看它們是否符合現在的ANSI C\C++標準。VC++屬於商業軟體,是要收費的(當然可以盜版用於個人應用是沒啥的),GCC是GNU自由軟體,無須註冊付費。
它也有Windows版本,MAME街機模擬器、DOSbox的Windows版本就需要使用Gcc在Windows下編譯,VC++是不行的,圖形庫也可以使用Gtk+
(免費,跨平臺,可用於開發商業應用而無須支付版權費)的windos版本等。
其實計算機語言不等於計算機技術,語言沒有優劣之分,只有更適用於實現某種技術。語言是最基本的工具,加上更多其它的東西才構成技術。