網(wǎng)站設(shè)計(jì)方案和技巧網(wǎng)絡(luò)暴力事件
封裝
08.C++中struct和class的區(qū)別??
相同點(diǎn)
- 兩者都擁有成員函數(shù)、公有和私有部分
- 任何可以使用class完成的工作,同樣可以使用struct完成
不同點(diǎn)
- 兩者中如果不對成員不指定公私有,struct默認(rèn)是公有的,class則默認(rèn)是私有的
- class默認(rèn)是private繼承, 而struct默認(rèn)是public繼承
- class還可以定義模板類形參, 比如template。
引申:C++和C的struct區(qū)別
- 成員函數(shù):C++中的struct可以擁有成員函數(shù),可以在結(jié)構(gòu)體內(nèi)定義成員函數(shù),實(shí)現(xiàn)面向?qū)ο缶幊痰奶匦浴?/li>
- 訪問控制:C++中的struct可以使用public、protected和private關(guān)鍵字來定義成員變量的訪問權(quán)限,而C中的struct只能使用public來定義結(jié)構(gòu)體成員變量。
- 繼承:C++中的struct可以繼承其他結(jié)構(gòu)體或類,而C中的struct沒有繼承的概念。
- 構(gòu)造函數(shù)和析構(gòu)函數(shù):C++中的struct可以有構(gòu)造函數(shù)和析構(gòu)函數(shù),而C中的struct只能通過函數(shù)來初始化或釋放內(nèi)存。
- 類型轉(zhuǎn)換:C++中的struct可以進(jìn)行類型轉(zhuǎn)換,比