C/C++編程筆記:C語言結(jié)構(gòu)和C++結(jié)構(gòu)之間的區(qū)別,又學(xué)到了嗎?

今天我們來看看:C語言結(jié)構(gòu)和C++結(jié)構(gòu)之間的區(qū)別
首先,在我們C ++中,struct和class完全相同,除了struct默認(rèn)為公共可見性和class默認(rèn)為私有可見性。

C和C ++結(jié)構(gòu)之間的一些重要區(qū)別:
結(jié)構(gòu)內(nèi)部的成員函數(shù):C中的結(jié)構(gòu)不能在結(jié)構(gòu)內(nèi)部具有成員函數(shù),但是C ++中的結(jié)構(gòu)可以與數(shù)據(jù)成員一起具有成員函數(shù)。
直接初始化:我們無法在C中直接初始化結(jié)構(gòu)數(shù)據(jù)成員,但可以在C ++中完成。
C

C ++

輸出:7
使用struct關(guān)鍵字:在C語言中,我們需要使用struct來聲明一個(gè)struct變量。在C ++中,沒有必要使用struct。例如,讓Record有一個(gè)結(jié)構(gòu)。在C語言中,必須對(duì)Record變量使用“ struct Record”。在C ++中,我們不需要使用struct,而僅使用'Record'可以。
靜態(tài)成員:?C結(jié)構(gòu)不能具有靜態(tài)成員,但C ++允許。
C

C ++

這將在C中產(chǎn)生一個(gè)錯(cuò)誤,但在C ++中不會(huì)產(chǎn)生任何錯(cuò)誤。
在結(jié)構(gòu)中創(chuàng)建構(gòu)造函數(shù):C中的結(jié)構(gòu)不能在結(jié)構(gòu)內(nèi)部具有構(gòu)造函數(shù),但是C ++中的結(jié)構(gòu)可以具有構(gòu)造函數(shù)創(chuàng)建。
C
C ++

輸出:2
sizeof運(yùn)算符:該運(yùn)算符將為C中的空結(jié)構(gòu)生成0,而為C ++中的空結(jié)構(gòu)生成1。

在C中的輸出:0
用C ++輸出:1個(gè)
數(shù)據(jù)隱藏:?C結(jié)構(gòu)不允許數(shù)據(jù)隱藏的概念,但是在C ++中是允許的,因?yàn)镃 ++是一種面向?qū)ο蟮恼Z言,而C語言則不是。
訪問修飾符:?C結(jié)構(gòu)沒有訪問修飾符,因?yàn)檎Z言不支持這些修飾符。由于C ++結(jié)構(gòu)是用語言內(nèi)置的,因此可以具有此概念。
另外如果你想更好的提升你的編程能力,學(xué)好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~

UP在主頁上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!
編程學(xué)習(xí)書籍分享:

編程學(xué)習(xí)視頻分享:
