淺談C結(jié)構(gòu)和C++結(jié)構(gòu)之間的區(qū)別
今天我們來(lái)看一下:C結(jié)構(gòu)和C++結(jié)構(gòu)之間,到底有什么不一樣地方!
在C++中,struct和class完全相同,除了struct默認(rèn)為公共可見(jiàn)性和class默認(rèn)為私有可見(jià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語(yǔ)言:
這將在C中產(chǎn)生一個(gè)錯(cuò)誤,但在C ++中不會(huì)產(chǎn)生任何錯(cuò)誤。
輸出:num = 9
直接初始化:我們無(wú)法在C中直接初始化結(jié)構(gòu)數(shù)據(jù)成員,但可以在C ++中完成。
輸出:7
使用struct關(guān)鍵字:在C語(yǔ)言中,我們需要使用struct來(lái)聲明一個(gè)struct變量。在C ++中,沒(méi)有必要使用struct。例如,讓Record有一個(gè)結(jié)構(gòu)。在C語(yǔ)言中,我們必須對(duì)記錄變量使用“結(jié)構(gòu)記錄”。在C ++中,我們不需要使用struct,而僅使用'Record'才可以。
靜態(tài)成員: C結(jié)構(gòu)不能具有靜態(tài)成員,但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)建。
輸出:2個(gè)
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(yǔ)言,而C語(yǔ)言則不是。
訪問(wèn)修飾符: C結(jié)構(gòu)沒(méi)有訪問(wèn)修飾符,因?yàn)檎Z(yǔ)言不支持這些修飾符。由于C ++結(jié)構(gòu)是用語(yǔ)言內(nèi)置的,因此可以具有此概念。
到此這篇關(guān)于淺談C結(jié)構(gòu)和C++結(jié)構(gòu)之間的區(qū)別的文章就介紹到這了,更多相關(guān)C結(jié)構(gòu)和C++結(jié)構(gòu)區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易的三子棋小游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易的三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08strcpy函數(shù)實(shí)現(xiàn)簡(jiǎn)示例命分享
這篇文章主要介紹了strcpy函數(shù)實(shí)現(xiàn)簡(jiǎn)示例命,需要的朋友可以參考下2014-03-03C語(yǔ)言實(shí)現(xiàn)哈夫曼樹(shù)的構(gòu)建
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)哈夫曼樹(shù)的構(gòu)建,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04你知道如何自定義sort函數(shù)中的比較函數(shù)
這篇文章主要介紹了如何自定義sort函數(shù)中的比較函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12C語(yǔ)言編程數(shù)據(jù)結(jié)構(gòu)棧與隊(duì)列的全面講解示例教程
本文介紹著重介紹數(shù)據(jù)結(jié)構(gòu)-棧和隊(duì)列的知識(shí),由于本文也設(shè)計(jì)多個(gè)動(dòng)態(tài)內(nèi)存開(kāi)辟函數(shù),小伙伴們?cè)趯W(xué)習(xí)本文之前,一定一定一定要把動(dòng)態(tài)內(nèi)存開(kāi)辟相關(guān)知識(shí)掌握牢固,這樣學(xué)習(xí)起本文才能事半功倍2021-10-10c++中?isupper()和islower()函數(shù)詳解
在C++中,islower()和isupper()是C++標(biāo)準(zhǔn)庫(kù)中提供的兩個(gè)字符判斷函數(shù),這兩個(gè)函數(shù)用于判斷一個(gè)字符是否為小寫字母或大寫字母,這篇文章主要介紹了c++?isupper()?islower()的相關(guān)資料,需要的朋友可以參考下2024-05-05OpenCV實(shí)現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo)
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08