一起來了解一下C++的結(jié)構(gòu)體?struct
struct 結(jié)構(gòu)體
占用空間
在C++ 中空結(jié)構(gòu)體占1個字節(jié)
struct Temp{};sizeof(Temp); // 1struct Temp{}; sizeof(Temp); // 1
1.字節(jié)對齊規(guī)則(為了便于cpu尋址) 元素的首地址必須是當(dāng)前元素所占空間的整數(shù)倍
2.結(jié)構(gòu)體的總長度必須是最大元素所占空間的整數(shù)倍
struct Stu{ int age; char sex; } sizeof(Stu); // 8 最后補(bǔ)三個字節(jié)滿足規(guī)則2 struct Stu2{ char sex; int age; } sizeof(Stu2); // 8 char后面補(bǔ)三個字節(jié)滿足規(guī)則1
與類的區(qū)別
訪問控制權(quán)限
結(jié)構(gòu)體在C++ 中的默認(rèn)訪問控制權(quán)限都是***public***的,而class的默認(rèn)是***private***的
主要用途
結(jié)構(gòu)體主要是作為數(shù)據(jù)的集合
而類是對象,是屬性和方法的集合
c結(jié)構(gòu)體實(shí)現(xiàn)虛函數(shù)的功能
#include <stdio.h> typedef int(*fun)(void); int getParentSex() { return 1; } int getSonSex() { return 2; } struct Parent { fun getSex; }; struct Son { fun getSex; }; int main() { // 通過函數(shù)指針的賦值達(dá)到虛函數(shù)的作用 struct Parent parent; parent.getSex = getParentSex; struct Son son; son.getSex = getSonSex; printf("Parent sex is %d \nson sex is %d\n", parent.getSex(), son.getSex()); getchar(); }
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
c++ 求數(shù)組最大最小值函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了c++ 求數(shù)組最大最小值函數(shù)的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07C語言實(shí)現(xiàn)簡單餐飲管理與點(diǎn)餐系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單餐飲管理與點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05c++11?實(shí)現(xiàn)枚舉值到枚舉名的轉(zhuǎn)換問題
這篇文章主要介紹了c++11?實(shí)現(xiàn)枚舉值到枚舉名的轉(zhuǎn)換,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因
這篇文章主要介紹了詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12C語言中的時間函數(shù)clock()和time()你都了解嗎
這篇文章主要為大家詳細(xì)介紹了C語言中的時間函數(shù)clock()和time(),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02C#將Unicode編碼轉(zhuǎn)換為漢字字符串的簡單方法
下面小編就為大家?guī)硪黄狢#將Unicode編碼轉(zhuǎn)換為漢字字符串的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01