C++类与结构体对比

初学类与结构体,很多人会觉得两者很是相像,那么类与结构体到底有何种区别呢?

事实上,不同的人对类与结构体的理解都各不相同。

在C++中类与结构体在语义上的区别仅仅是类中的成员默认为私有,而在结构体中的成员默认为公有,这意味着如果我们将一个类修改为结构体,事实上也是可行的,只需要我们将class替换为struct并且稍微修改一下成员的可见性即可,反之同理。      那么既然两者如此相像,那为什么c++中不去掉其中一个,而要两者都进行保留呢?

1.为了兼容性

C++作为C的继任者保留了C当中的很多语法,为了更好的继承C所以C++中保留了结构体这一概念,在C中没有类只能使用结构体去完成对一个对象的构建,为了与C更好的兼容,C++也保留了这一特性

2.在实际使用当中会不会有所区别呢?比如在某些时候用结构体,某些时候用类?

显然并不是,类与结构体在语义上的相似,使得两者实际没有多大区别,因此没有必要纠结于什么时候用类什么时候用结构体这样的问题。这样的问题事实上取决于你个人的编程风格。

我个人喜欢在需要继承的时候使用类,不需要的时候两者皆可,因为在继承时本身是更更复杂层次的东西,而结构体我只喜欢他去放某些数据而已,但这里要注意一点,事实上结构体也可以进行继承,甚至可以混合使用这些类型,例如:我有一个叫做a的类和一个叫做b的结构体,这个b结构体继承自a,某些编译器会警告,但是仍然可以运行

总而言之,类与结构体在技术上没有多少区别,除了可见性,你可以在任何可以使用类的地方使用结构体,它们将以相同的方式工作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值