c++|區別|文法
下表包含 C++ 和 C# 功能之間的重要比較。如果您是一位 C++ 程式員,此表將為您提供這兩種語言的最重要差異。
注意 C++ 和 C# 項目派生於不同的項目模型。有關 C++ 和 C# 項目之間差異的資訊,請參見項目中的項管理和使用方案總管。
功能 參考主題
繼承:類只能繼承一個基類中的實現。另外,類或介面可以實現多個介面。
數組:聲明 C# 數組和聲明 C++ 數組的文法不同。在 C# 中,“[]”標記出現在數群組類型的後面。
bool 類型:bool 類型和其他類型(特別是 int)之間沒有轉換。
long 類型:在 C# 中,long 資料類型為 64 位元,而在 C++ 中為 32 位。
struct 類型:在 C# 中,類和結構在語義上不同。struct 是實值型別,而 class 是參考型別。
switch 語句:與 C++ 中的 switch 語句不同,C# 不支援從一個 case 標籤貫穿到另一個 case 標籤。
delegate 類型:委託與 C++ 中的函數指標基本相似,但前者具有型別安全,是安全的。
從衍生類別調用重寫基類成員。
使用 new 修飾符顯式隱藏繼承成員。
聲明重寫方法需要有 override 關鍵字。
前置處理器指令用於條件編譯。C# 中不使用標頭檔。
異常處理:使用 finally 語句。
C# 運算子:C# 支援其他運算子,如 is 和 typeof。它還引入了某些邏輯運算子的不同功能。
關鍵字 extern 的使用。
關鍵字 static 的使用。
在構造基類上替代 C++ 初始化列表的方法。
C# 程式的常規結構:命名空間、類、結構、委託和枚舉。
Main 方法和 C++ 中的 main 函數的聲明方式不同。
方法參數:C# 支援 ref 和 out 參數,這兩個參數取代指標通過引用傳遞參數。
在 C# 中只在不安全模式下才使用指標。 unsafe
在 C# 中以不同的方式執行重載運算子。
字串:C# 字串不同於 C++ 字串。 string
foreach 關鍵字使您得以逐一查看數組和集合。 foreach, in
C# 中沒有全域方法和全域變數:方法和變數必須包含在型別宣告(如 class 或 struct)中。
C# 中沒有標頭檔和 #include 指令:using 指令用於引用其他未完全限定類型名的命名空間中的類型。
C# 中的局部變數在初始化前不能使用。
解構函式:在 C# 中,不能控制解構函式的調用時間,原因是解構函式由記憶體回收行程自動調用。
建構函式:與 C++ 類似,如果在 C# 中沒有提供類建構函式,則為您自動產生預設建構函式。該預設建構函式將所有欄位初始化為它們的預設值。
C# 不支援位域。 C++ 位域
C# 的輸入/輸出服務和格式設定依賴於 .NET Framework 的執行階段程式庫。
在 C# 中,方法參數不能有預設值。如果要獲得同樣的效果,請使用方法重載。