c++中的空结构体和c中空结构体的区别和联系

1.1  我们首先在C中添加一个空结构体

#include <stdio.h>
#include <stdlib.h>
struct ST_1
{
 
}st_1;

int main()
{   
    printf("输出空结构体变量st_1的大小:%d\n",sizeof(st_1));
    return 0;
}

1.2在看C++中空结构体

#include <iostream>

using namespace std;
struct STU_1
{

}stu_1;

int main()
{
    cout << "输出空结构体变量stu_1的大小" <<sizeof(stu_1) <<endl;
    return 0;
}

1.3最后看空类

#include <iostream>

using namespace std;
struct STU_1
{

}stu_1;
class CLA
 {

 };

int main()
{
    CLA cla;
    cout << "输出空结构体变量stu_1的大小" <<sizeof(stu_1) <<endl;
    cout << "输出空类实例cla体变量stu_1的大小" <<sizeof(cla) <<endl;
    return 0;
}

看看结果:

另外补充说明一下:

C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。

C++中的 struct 和 class 基本是通用的,唯有几个细节不同:

  • 使用 class 时,类中的成员默认都是 private 属性的;而使用 struct 时,结构体中的成员默认都是 public 属性的。
  • class 继承默认是 private 继承,而 struct 继承默认是 public 继承(《C++继承与派生》一章会讲解继承)。
  • class 可以使用模板,而 struct 不能(《模板、字符串和异常》一章会讲解模板)。(这个其实我也不了解)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值