C++ class和struct区别整理

1、访问控制:class成员默认权限是private的,而struct成员默认权限是public;class默认继承方式是私有的继承,而struct默认是公有继承。这就是为什么我们在使用class继承的时候要表明public继承的原因。


2、到底默认是public继承还是private继承,关键看子类而不是基类,即struct可以继承class,class也可以继承struct,默认的访问控制权限主要看子类是struct还是class,如下:

class A;

struct B : class A;  //public继承

class C:  class A   // private继承


3、class可用于定义函数模板,使用方法同“typename”;但是struct无法用于定义模板参数。


4、在程序里,大部分位置可以完全将class和struct混用,但是为了程序可读性,需要确定两者更合理的使用方法,struct 更倾向于数据结构的实现体,而class更倾向于属于一种对象的实现体。


,5、在C语言中,class和struct还有其他不同,c是一种过程化的定义,而struct是一种复杂数据类型定义,并且struct只能定义成员变量,不能定义成员函数;

6、C++中保留了c语言中的struct关键字,并加以扩充,在C语言中,struct只能包含成员变量,不能包含成员函数。而在C++中国魂,struct类似于class,即可以包含成员变量,也可以包含成员函数。

(本文扒自n个牛人博客加上C++Primer Plus归纳,如有侵权,私聊我)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值