一起來瞭解一下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的更多內容!     

推薦閱讀: