A. c語言中的構造函數和析構函數的異同點
構造函數是一種用於創建對象的特殊函數,當創建對象是,系統自動調用構造函數,不能在程序中直接調用.
構造函數名與類名相同,一個類可以擁有多個構造函數(重載),構造函數可以有任意類型的參數,但不能具有返回類型!
構造函數的作用是:為對象分配空間;對數據成員賦初值;請求起他資源.
析構函數作用是清除對象,釋放內存等
B. string在c語言中是什麼意思
string在c語言中的意思是System.Char對象的有序集合,用於表示字元串。
String就是C等編程語言中的字元串,用雙引號引起來的幾個字元。
在java、C#中,String類是不可變的,對String類的任何改變,都是返回一個新的String類對象。String對象是System.Char對象的有序集合,用於表示字元串。String對象的值是該有序集合的內容,並且該值是不可變的。
可以使用以下方法之一來創建string對象:
通過給String變數指定一個字元串。
通過使用String類構造函數。
通過使用字元串串聯運算符(+)。
通過檢索屬性或調用一個返回字元串的方法。
通過格式化方法來轉換一個值或對象為它的字元串表示形式。
C. 在C語言中malloc,free,new,del,
1,malloc與free是C++/C語言的標准庫函數,new/delete是C++的運算符。它們都可用於申請動態內存和釋放內存。
2, 對於非內部數據類型的對象而言,光用maloc/free無法滿足動態對象的要求。對象在創建的同時要自動執行構造函數,對象在消亡之前要自動執行析構函數。由於malloc/free是庫函數而不是運算符,不在編譯器控制許可權之內,不能夠把執行構造函數和析構函數的任務強加於malloc/free。
3,因此C++語言需要一個能完成動態內存分配和初始化工作的運算符new,以一個能完成清理與釋放內存工作的運算符delete。注意new/delete不是庫函數。
4,C++程序經常要調用C函數,而C程序只能用malloc/free管理動態內存
new 是個操作符,和什麼"+","-","="...有一樣的地位
簡單的說:
malloc,free是c的函數,new,delete是c++的運算符
此外,new是強制類型的,malloc不是,需要類型轉換
當然還有很多不同
new 可以調用構造函數在聲明的時候初始化
malloc只是分配空間,需要在其他地方初始化
而delete不僅會釋放空間,在釋放前會調用析構函數
而且malloc需要指定分配空間大小, 而new是自動計算的