C++中struct与class的区别

C++中struct与class的区别

首先
struct本身来说为C语言里用于将多种数据、多个变量组织在一起,便于表达比较复杂的数据类型,本质上来说并不是用于构造类的关键字,由于c++对C语言的兼容性导致该关键字被保留下来。

而class,则称作“”,是C++新增来支持面向对象思想概念中“类”的概念的一个关键词,具有更加强大的功能,包括定义方法等。

但是在c++程序中二者具有很多相似之处,可以说基本雷同,大部分情况下可以互通,不同之处主要体现在以下三个方面:

1)默认的继承访问权限不同,struct是public的,class是private的

2)构造类时的默认成员权限不同,struct的默认的成员变量访问控制是public的,而class的默认的成员变量访问控制是private的;

3)是否能用于定义模板参数,模板为C++语言新增特性,C语言没有,只有class可用于定义参数,而struct不可以(当然更建议此时使用typename)。

eg:template<class T>或者template<typename T>而不可以template<struct T>

4)构造及析构函数方面:二者在C++中的struct与class一样都是可以有析构函数和构造函数,而C中则不允许。

总体来看,struct更适合看成是一个数据结构的复杂数据类型,class更适合看成是一个类的定义。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值