c++被稱為「c with class」,可見在c++中class是多麼重要,與class類似的乙個結構就是struct了,struct最早是在c語言中出現的,在c++中對struct的功能也進行了擴充套件,下面就來說一說struct和class的區別吧:
1、預設的繼承許可權
struct預設是公有繼承(public),class預設是私有繼承(private)
2、關於預設訪問許可權
class中預設的成員訪問許可權是private的,而struct中則是public的。
3、關於大括號初始化問題
struct在c語言中:
在c語言中,我們知道struct中是一種資料型別,只能定義資料成員,不能定義函式,這是因為c語言是面向過程的,面向過程認為資料和操作是分開的,所以c語言中的struct可以直接使用大括號對所有資料成員進行初始化
例如:
struct test
;//初始化
test a=;//完全可以
在c++中class和struct的區別:
在c++中對struct的功能進行了擴充套件,struct可以被繼承,可以包含成員函式,也可以實現多型,當用大括號對其進行初始化需要注意:
4、關於模板
在模板中,型別引數前面可以使用class或typename,如果使用struct,則含義不同,struct後面跟的是「non-type template parameter」,而class或typename後面跟的是型別引數。
struct和class的區別
1.值型別與引用型別 結構是值型別 值型別在堆疊上分配位址,所有的基型別都是結構型別,例如 int 對應system.int32 結構,string 對應 system.string 結構 通過使用結構可以建立更多的值型別 類是引用型別 引用型別在堆上分配位址 堆疊的執行效率要比堆的執行效率高,可是...
class和struct的區別
從語法上,在c 中 只討論c 中 class和struct做型別定義時只有兩點區別 一 預設繼承許可權。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理 二 成員的預設訪問許可權。class的成員預設是private許可權,struct預...
class和struct的區別
從語法上,在c 中 只討論c 中 class和struct做型別定義時只有兩點區別 一 預設繼承許可權。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理 二 成員的預設訪問許可權。class的成員預設是private許可權,struct預...