3. c和c++間struct的深層區別
在c++語言中struct具有了「類」 的功能,其與關鍵字class的區別在於struct中成員變數和函式的預設訪問許可權為public,而class的為private。
例如,定義struct類和class類:
struct structa
class classb
則:struct a a;
a.a = 'a'; //訪問public成員,合法
classb b;
b.a = 'a'; //訪問private成員,不合法
許多文獻寫到這裡就認為已經給出了c++中struct和class的全部區別,實則不然,另外一點需要注意的是:
c++中的struct保持了對c中struct的全面相容(這符合c++的初衷——「a better c」),因而,下面的操作是合法的:
//定義struct
struct structa
;structa a = ; // 定義時直接賦初值
即struct可以在定義的時候直接以對其成員變數賦初值,而class則不能,在經典書目《thinking c++ 2nd edition》中作者對此點進行了強調。
C C 語言struct深層探索
c c 語言struct深層探索 2008年04月02日 星期三 下午 06 24 c c 語言struct深層探索 2008年03月27日 星期四 08 16 p.m.c c 語言struct深層探索 1.struct的巨大作用 面對乙個人的大型c c 程式時,只看其對struct的使用情況我們就...
C C 語言struct深層探索
1.struct的巨大作用 面對乙個人的大型c c 程式時,只看其對struct的使用情況我們就可以對其編寫者的程式設計經驗進行評估。因為乙個大型的c c 程式,勢必要涉及一些 甚至大量 進行資料組合的結構體,這些結構體可以將原本意義屬於乙個整體的資料組合在一起。從某種程度上來說,會不會用struc...
C C 語言struct深層探索
1.struct的巨大作用 面對乙個人的大型c c 程式時,只看其對struct的使用情況我們就可以對其編寫者的程式設計經驗進行評估。因為乙個大型的c c 程式,勢必要涉 及一些 甚至大量 進行資料組合的結構體,這些結構體可以將原本意義屬於乙個整體的資料組合在一起。從某種程度上來說,會不會用stru...