一起來瞭解一下C++的結構體 struct
struct 結構體
占用空間
在C++ 中空結構體占1個字節
struct Temp{};sizeof(Temp); // 1struct Temp{}; sizeof(Temp); // 1
1.字節對齊規則(為瞭便於cpu尋址) 元素的首地址必須是當前元素所占空間的整數倍
2.結構體的總長度必須是最大元素所占空間的整數倍
struct Stu{int age;char sex;}sizeof(Stu); // 8 最後補三個字節滿足規則2struct Stu2{char sex;int age;}sizeof(Stu2); // 8 char後面補三個字節滿足規則1struct Stu{ int age; char sex; } sizeof(Stu); // 8 最後補三個字節滿足規則2 struct Stu2{ char sex; int age; } sizeof(Stu2); // 8 char後面補三個字節滿足規則1
與類的區別
訪問控制權限
結構體在C++ 中的默認訪問控制權限都是***public***的,而class的默認是***private***的
主要用途
結構體主要是作為數據的集合
而類是對象,是屬性和方法的集合
c結構體實現虛函數的功能
#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() { // 通過函數指針的賦值達到虛函數的作用 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(); }
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!