C C 語言struct深層探索(四)

2021-08-29 15:24:31 字數 597 閱讀 1782

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...