本文著重進行對C++語言來說,在語法上要簡單得多,因此初學者很容易上手。二者拋棄了最容易引起問題的指針,對內存的管理完全自動化,這樣雖然帶來了程序的穩定性和安全性。
提示:因為內存管理自動化,C#、Java語言擁有垃圾自動回收機制,在C++中,申請的內存必須由程序員自己手動釋放,如果忘記這一點就會引起內存洩露。C++豐富的語言特性在一定程度上彌補了如下不足:
◆部分C++庫擁有內存管理機制,如STL、Boost等。
◆C++擁有智能指針。
◆某些C++庫實現了垃圾回收功能。
◆1.1.3 是否跨平台
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++語言級別的效率某些情況下例外),又加入了面向對象的特性。