同樣是結(jié)構(gòu)體,看看在C語言和C++中有什么區(qū)別?
首先是作為一種自定義數(shù)據(jù)類型,C語言中定義結(jié)構(gòu)體變量必須要加上 struct 關(guān)鍵字,C++可以不加,直接用結(jié)構(gòu)體名。
第二個,C語言的結(jié)構(gòu)體,只能放一些變量,如果想放一些函數(shù)進(jìn)去,也只能使用結(jié)構(gòu)體指針間接的去操作。
但是在 C++ 中,結(jié)構(gòu)體就豐富了很多,不僅可以有變量,還可以寫函數(shù)。通過結(jié)構(gòu)體變量也能去調(diào)用函數(shù)。
第三個,C++中的結(jié)構(gòu)體,可以支持構(gòu)造函數(shù)。
所謂構(gòu)造函數(shù),就是函數(shù)名與結(jié)構(gòu)體名相同的函數(shù),并且沒有返回值。
在這個函數(shù)里面,一般可以對結(jié)構(gòu)體成員做初始化。
有了構(gòu)造函數(shù),當(dāng)然也有析構(gòu)函數(shù),做一些回收資源的操作。
第四個,C++中的結(jié)構(gòu)體還具備了繼承的特性。比如來個結(jié)構(gòu)體 A,再來個結(jié)構(gòu)體 B,因為結(jié)構(gòu)體 B 中的成員有一部分跟 A 一樣,所以可以直接使用繼承的語法,把 A 繼承過來。不過這些都已經(jīng)屬于面向?qū)ο蟮姆懂牎?/p>
關(guān)于 C 和 C++ 中結(jié)構(gòu)體的區(qū)別,還有哪些,歡迎在評論區(qū)補(bǔ)充。
-
C語言
+關(guān)注
關(guān)注
180文章
7591瀏覽量
135776 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4276瀏覽量
62313 -
結(jié)構(gòu)體
+關(guān)注
關(guān)注
1文章
129瀏覽量
10823
原文標(biāo)題:同樣是結(jié)構(gòu)體,在C和C++中有什么區(qū)別
文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論