總結一下C++與C#之間的區別


1,C#不支持多重繼承

2.在標准的C#安全代碼中不支持指針類型的操作,然而,你卻能在微軟所謂的“非安全代碼”中操作指針類型對象。

3.C#中所有對象都只能通過關鍵詞“new”來創建,C++的“類名_對象名”方式在C#中變為聲明一個引用。萬物皆對象,連常見的數據類型都變為對象了。

4.數組變為了類,因此對於數組里的元素,.NET Framework直接提供了一系列的操作:查找、排序、倒置……

5.在C#里面,數組的元素都是存放在托管堆里面,比起C++的在內存里不確定位置申請一塊連續空間要安全得多。

6,C++的switch后跟參數必須是int型,而C#卻允許string型,這點改進覺得真的是比以前方便多了!

7.C#會禁止所有switch..case語句的失敗情形,除非case語句后是空格,否則執行了前一個case語句就算沒有break也會停止執行后面的case語句。

8.在異常處理上,C++允許拋出任何類型,而C#中規定拋出類型為一個派生於System.Exception的對象。

9.C++的在C#中被拋棄了很多,而且也不建議使用,因此很少見。

10.C++的模板在C#里沒有了,但在C#中我們找到了能完成模板任務的更鋒利的武器:委托

11.C++的全局變量這一概念沒有了,C#和JAVA類似,要把所有東西都放在類里面,還建議使用命名空間包含起來。

12.C#可以在定義類的時候直接給屬性賦值,而C++這么做卻會編譯出錯。

13.C#里有靜態構造函數一個概念,這個構造函數只執行一次,因此能夠保證一些靜態成員只被初始化一遍。

14.C#有自動垃圾收集機制,防止內存泄露,把C++程序員從繁重的內存管理上解放出來。

15.更強的類型轉換保護機制,比如說把float轉成uint,直接轉換0.35會變成0.34,是因為二進制無法表示這樣的數字,使用System.Conver里的方法,可以安全地把類型安全轉換過來。

16.委托與事件、裝箱與取消裝箱、Web Services……一大堆C++沒有的新東西,我感覺是做大型項目方便了管理,也容易擴充,但做起小型項目,由於是編譯成IL代碼的,運行需要.NET Framework SDK支持,效率是個問題,不利於做那些對運算速度和內存消耗要求高的項目。

開發項目來說,C#適合企業各應用程序,C++適合底層開發(游戲等)

轉自:https://blog.csdn.net/u012154840/article/details/78261001


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM