程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 詳細說明C++程序設計語言概述

詳細說明C++程序設計語言概述

編輯:C++入門知識

C++語言來說較為簡單,比較容易上手。C++的語法特性多、復雜,較難掌握,C語言誕生於20世紀70年代,是一種應用相當廣泛的程序設計語言尤其是在系統程序設計領域)。

20世紀80年代,美國貝爾實驗室的Bjarne Stroustrup博士及其同事在C語言的基礎上引入了面向對象的編程思想和一個class關鍵字,形成了最早的C++語言原型。後來,C++語言被融入了越來越多的語言特性,其中最具有意義、影響最深遠的莫過於template模板)的引入。

最終美國國家標准化協會ANSIAmerican National Standard Institute)和國際標准化組織ISOInternational Standards Organization)一起對C++語言進行了標准化工作,並於1998年正式發布了C++語言的國際標准ISO/IEC:98-14882。C++已經成為最流行的程序設計語言之一。

很多剛接觸程序設計的人經常會問“C++和C#、Java有哪些區別?學哪個比較好?”這樣的問題。在網絡上搜索一下,也不難發現這個問題已在各大論壇中成為討論的焦點。C語言是面向過程的。C++和C#、Java這3種語言都使用了類似C風格的語法,但它們都是面向對象OOP)的。C++是對C語言的一個擴充,也就是說,一個C語言的程序,也可以認為是一個C++程序沒有用到C++高級特性而已),C#和Java對C語言沒有任何的兼容性。

C++和C#、Java這3種語言中,C++是最早出現的,保持了對C的兼容性,允許指針的存在,允許程序員手動高效地管理、使用內存盡管這也是最容易引起問題的地方)。C++在發展的過程中,不斷地補充語言特性,使得C++成為最靈活的編程語言之一。

  • 大辯論:Java不是C++ 閉包讓Java更簡單
  • 解讀Visual C++ 2005具體實例
  • 高手指點VC++ 2005 Express配置問題
  • C++之父:面向對象的進化與實現
  • 如何更好的設置Dev C++說明

C++語言的靈活性是建立在其復雜的語法之上的,因此對於初學者來說,很有可能因此望而卻步,但是如果堅持下去,就會發現,再去看C#、Java語法時會感到很輕松。

C#、Java語言相對C++語言來說,在語法上要簡單得多,因此初學者很容易上手。二者拋棄了最容易引起問題的指針,對內存的管理完全自動化,這樣雖然帶來了程序的穩定性和安全性,但是在某種程度上丟失了效率。

提示:因為內存管理自動化,C#、Java語言擁有垃圾自動回收機制,在C++中,申請的內存必須由程序員自己手動釋放,如果忘記這一點就會引起內存洩露。
C++語言的語言特性在一定程度上彌補了如下不足:部分C++庫擁有內存管理機制,如STL、Boost等。C++擁有智能指針。某些C++庫實現了垃圾回收功能。

Java的程序是運行在虛擬機上Virtual Machine)的,而C++不是,C++程序的代碼是直接運行在物理機器上的。
就Java和C#二者單獨來看,C#更像是微軟公司和SUN公司進行商業斗爭的產物。歷史上,微軟公司是支持過Java語言的,代表性的產品有Visual J++和WFC。後來因為眾所周知的原因,微軟公司推出了C#,其目的很明確,就是和Java競爭。

實際上C#和Java在特性上也非常類似不僅僅是語法)。二者都是為了更加方便地解決應用問題,在GUI、數據庫訪問、網絡通信、多線程等和實際應用密切相關的點上都有成熟的解決方案。C++更多地靠第三方的庫來實現這些功能,因為C++是一個國際標准,要在C++中加入這些語言之外的、面向應用的特性還需要很長一段路要走。而C#、Java的擁有者是商業化公司,各種動作自然要敏捷得多。

但是這並不意味著C++即將消亡這樣的言論很多)。不可否認的是C++在C#、Java的進攻下,丟失了一些領域,但是C++語言仍然在普遍使用,很重要的原因就是因為C++既保持了C語言級別的效率某些情況下例外),又加入了面向對象的特性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved