一起來了解一下C++的結(jié)構(gòu)體?struct
struct 結(jié)構(gòu)體
占用空間
在C++ 中空結(jié)構(gòu)體占1個(gè)字節(jié)
struct Temp{};sizeof(Temp); // 1struct Temp{};
sizeof(Temp); // 1
1.字節(jié)對(duì)齊規(guī)則(為了便于cpu尋址) 元素的首地址必須是當(dāng)前元素所占空間的整數(shù)倍
2.結(jié)構(gòu)體的總長(zhǎng)度必須是最大元素所占空間的整數(shù)倍
struct Stu{
int age;
char sex;
}
sizeof(Stu); // 8 最后補(bǔ)三個(gè)字節(jié)滿足規(guī)則2
struct Stu2{
char sex;
int age;
}
sizeof(Stu2); // 8 char后面補(bǔ)三個(gè)字節(jié)滿足規(guī)則1
與類的區(qū)別
訪問控制權(quán)限
結(jié)構(gòu)體在C++ 中的默認(rèn)訪問控制權(quán)限都是***public***的,而class的默認(rèn)是***private***的
主要用途
結(jié)構(gòu)體主要是作為數(shù)據(jù)的集合
而類是對(duì)象,是屬性和方法的集合
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語言構(gòu)建基本的二叉樹數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了使用C語言使用C語言構(gòu)建基本的二叉樹數(shù)據(jù)結(jié)構(gòu),包括根據(jù)前序序列和中序序列構(gòu)建二叉樹的方法,需要的朋友可以參考下2015-08-08
C語言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法
這篇文章主要介紹了C語言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法,涉及C語言針對(duì)時(shí)間的相關(guān)操作技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-07-07
C++使用printf語句實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的示例代碼
在C語言中,printf 函數(shù)可以直接實(shí)現(xiàn)部分進(jìn)制轉(zhuǎn)換功能,通過格式說明符(format specifier)快速輸出不同進(jìn)制的數(shù)值,下面給大家分享C++使用printf語句實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換的示例代碼,感興趣的朋友一起看看吧2025-04-04
可能是全網(wǎng)最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫教程
QT眾所周知是一個(gè)開源的,以C++為底層的可視化工具庫,下面這篇文章主要給大家介紹了關(guān)于最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫教程的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
標(biāo)準(zhǔn)CSV格式的介紹和分析以及解析算法實(shí)例詳解
這篇文章主要介紹了標(biāo)準(zhǔn)CSV格式的介紹和分析以及解析算法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12

