C++中结构体struct与类class的区别

1.1 结构体的概念
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。它是一种数据类型

1.2 C中的结构体

在C语言中,结构体是复合数据类型的一种,同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的数据类型。

结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。
- 注意:在C语言中,结构体不能包含函数

1.3C++中的结构体

在C中认为,数据和数据操作是分开的;然而在c++中,数据和数据对象是一个整体,不应该分开,这就是struct在c和c++两个时代的差别。

在C++中struct得到了很大的扩充:
1.struct可以包括成员函数
2.struct可以实现继承
3.struct可以实现多态

-注意:在C++中,结构体可以包含函数。

1.4结构体的三种定义方式

  1. 先定义结构体类型,再定义结构体类型变量:
> struct stu 
>  {
>      char name[20];
>      char sex; 
>      long num; 
>      float score[3]; / * 三科考试成绩* /
>       }; 
>      struct stu student1;/ * 定义结构体类型变量* / 
>     // 用此结构体类型,可以定义更多的该结构体类型变量
  1. 定义结构体类型同时定义结构体类型变量:

> struct data 
> {
>      int day;
>      int month;
>      int year; } time1; 
>    struct data time3,time4;
>    // 用此结构体类型,可以定义更多的该结构体类型变量

  1. 直接定义结构体类型变量:

> struct
>  {
>      char name[20];
>      char sex; 
>      long num; 
>      float score[3]; } person1,person2;
>      除直接定义外,不能再定义该结构体类型变量。

注意:在C中定义一个结构体类型要用typedef:

> typedef struct Student { int a; }Stu; 
              Stu stu1;

如果没有typedef就必须用struct Student stu1;来声明 这里的Stu实际上就是struct Student的别名。
另外这里也可以不写Student(于是也不能struct Student stu1;了)

>  typedef struct { int a;
> > }Stu;

1.5 结构体struct与类class的区别

  • 默认的继承访问权。class默认的是private,strcut默认的是public。
  • 默认的访问权限:struct作为数据结构的实现体,它默认的数据访问控制是public的,而class作为对象的实现体,它默认的成员变量访问控制是private的。
  • 关键字class可用于定义模板参数**,关建字“struct”不用于定义模板参数

参考文章:
https://blog.csdn.net/alidada_blog/article/details/83419757
https://www.cnblogs.com/ransn/p/5132352.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值