資源描述:
《C++、Java和C#的語法比較》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、下表包含C++和C#功能之間的重要比較。如果您是一位C++程序員,此表將為您提供這兩種語言的最重要差異。注意??C++和C#項目派生于不同的項目模型。有關(guān)C++和C#項目之間差異的信息,請參見項目中的項管理和使用解決方案資源管理器。功能參考主題繼承:類只能繼承一個基類中的實現(xiàn)。另外,類或接口可以實現(xiàn)多個接口。?數(shù)組:聲明C#數(shù)組和聲明C++數(shù)組的語法不同。在C#中,“[]”標(biāo)記出現(xiàn)在數(shù)組類型的后面。bool類型:bool類型和其他類型(特別是int)之間沒有轉(zhuǎn)換。long類型:在C#中,long數(shù)據(jù)類型為64位,而在C++中為32位。struc
2、t類型:在C#中,類和結(jié)構(gòu)在語義上不同。struct是值類型,而class是引用類型。?switch語句:與C++中的switch語句不同,C#不支持從一個case標(biāo)簽貫穿到另一個case標(biāo)簽。delegate類型:委托與C++中的函數(shù)指針基本相似,但前者具有類型安全,是安全的。從派生類調(diào)用重寫基類成員。?使用new修飾符顯式隱藏繼承成員。聲明重寫方法需要有override關(guān)鍵字。預(yù)處理器指令用于條件編譯。C#中不使用頭文件。異常處理:使用finally語句。?C#運算符:C#支持其他運算符,如is和typeof。它還引入了某些邏輯運算符的不同
3、功能。?關(guān)鍵字extern的使用。關(guān)鍵字static的使用。在構(gòu)造基類上替代C++初始化列表的方法。C#程序的常規(guī)結(jié)構(gòu):命名空間、類、結(jié)構(gòu)、委托和枚舉。Main方法和C++中的main函數(shù)的聲明方式不同。方法參數(shù):C#支持ref和out參數(shù),這兩個參數(shù)取代指針通過引用傳遞參數(shù)。?在C#中只在不安全模式下才使用指針。unsafe在C#中以不同的方式執(zhí)行重載運算符。字符串:C#字符串不同于C++字符串。stringforeach關(guān)鍵字使您得以循環(huán)訪問數(shù)組和集合。foreach,inC#中沒有全局方法和全局變量:方法和變量必須包含在類型聲明(如cla
4、ss或struct)中。C#中沒有頭文件和#include指令:using指令用于引用其他未完全限定類型名的命名空間中的類型。C#中的局部變量在初始化前不能使用。析構(gòu)函數(shù):在C#中,不能控制析構(gòu)函數(shù)的調(diào)用時間,原因是析構(gòu)函數(shù)由垃圾回收器自動調(diào)用。構(gòu)造函數(shù):與C++類似,如果在C#中沒有提供類構(gòu)造函數(shù),則為您自動生成默認(rèn)構(gòu)造函數(shù)。該默認(rèn)構(gòu)造函數(shù)將所有字段初始化為它們的默認(rèn)值。?C#不支持位域。C++位域C#的輸入/輸出服務(wù)和格式設(shè)置依賴于.NETFramework的運行時庫。?在C#中,方法參數(shù)不能有默認(rèn)值。如果要獲得同樣的效果,請使用方法重載。
5、1.繼承:C++支持多繼承,C#類只能繼承一個基類中的實現(xiàn)但可以實現(xiàn)多個接口。2.數(shù)組:聲明C#數(shù)組和聲明C++數(shù)組的語法不同。在C#中,“[]”標(biāo)記出現(xiàn)在數(shù)組類型的后面。3.數(shù)據(jù)類型:在C++中bool類可以與整型轉(zhuǎn)換,但C#中bool類型和其他類型(特別是int)之間沒有轉(zhuǎn)換。long類型:在C#中,long數(shù)據(jù)類型為64位,而在C++中為32位。4.struct類型:在C#中,類和結(jié)構(gòu)在語義上不同。struct是值類型,而class是引用類型。5.switch語句:與C++中的switch語句不同,C#不支持從一個case標(biāo)簽貫穿到另一個
6、case標(biāo)簽。?6.delegate類型:委托與C++中的函數(shù)指針基本相似,但前者具有類型安全,是安全的。7.從派生類調(diào)用重寫基類成員。base8.使用new修飾符顯式隱藏繼承成員。9.重寫方法需要父類方法中用virtual聲名,子類方法用override關(guān)鍵字。10.預(yù)處理器指令用于條件編譯。C#中不使用頭文件。C#預(yù)處理器指令11.異常處理:C#中引入了finally語句,這是C++沒有的。12.C#運算符:C#支持其他運算符,如is和typeof。它還引入了某些邏輯運算符的不同功能。13.static的使用,static方法只能由類名調(diào)用
7、,改變static變量。14.在構(gòu)造基類上替代C++初始化列表的方法。15.Main方法和C++及Java中的main函數(shù)的聲明方式不同,Main而不能用main16.方法參數(shù):C#支持ref和out參數(shù),這兩個參數(shù)取代指針通過引用傳遞參數(shù)。?17.在C#中只能在unsafe不安全模式下才使用指針。18.在C#中以不同的方式執(zhí)行重載運算符。19.字符串:C#字符串不同于C++字符串。20.foreach:C#從VB中引入了foreach關(guān)鍵字使得以循環(huán)訪問數(shù)組和集合。21.C#中沒有全局方法和全局變量:方法和變量必須包含在類型聲明(如class
8、或struct)中。22.C#中沒有頭文件和#include指令:using指令用于引用其他未完全限定類型名的命名空間中的類型。23.C#中的局部變量