class与struct的区别—面向对象(一)

class是C++中独有的,而struct在C中和在C++都有,而且互相之间也有差别,笼统来说,C++中的struct是对C中的struct做了加强。

C中的struct和class的区别

在C中,struct只是作为一种复杂的数据类型定义而存在的,C中的struct中只能定义成员变量,不能定义成员函数

C++中的struct和class的区别

而在C++中对struct做了加强,struct里面可以定义函数了,但与class还是有区别的:

  • 1)class中默认的成员访问权限是private,而struct中则是public的。
  • 2)在继承方式上,class继承默认是private继承,而struct是public继承。
  • 3)class可以用于表示模板类型,而struct不行。

最后,struct依然保持存在的原因是因为为了让C++去兼任或者说是去包容C部分的语法,所作的改善,本质上真正是遇到struct和class都可以适用的场景,肯定优先选class,但一些单独适用struct的场景,就用struct了。

还有,struct的具体用法和class都是相似的,并不是说struct就不能用了!

发布了278 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_17846375/article/details/104990545
今日推荐