1.17、class与struct的区别
默认成员访问权限
- •
struct
的成员默认是public
,即未显式指定访问权限时,成员对外公开。 - •
class
的成员默认是private
,即未显式指定访问权限时,成员对外不可见。
默认继承权限
- •
struct
继承时默认是public
继承。 - •
class
继承时默认是private
继承。
除此之外,class
和struct
在语法和功能上没有区别,都可以定义构造函数、析构函数、成员函数、静态成员、模板参数等。C++保留struct
关键字主要是为了与C语言兼容,使得简单的数据结构(POD类型)可以无缝使用,同时也在代码风格上通过struct
和class
的选择传递不同的设计意图:
设计意图和代码风格
- • 通常用
struct
表示简单的数据聚合体,主要用于存储数据,成员通常是公开的,行为简单。 - • 用
class
表示具有封装性、复杂行为和私有成员的对象,强调面向对象的封装和抽象。
面试回答示例
面试中回答此问题时,可以说:
在C++中,struct
和class
的唯一区别是默认的访问权限和继承权限:struct
成员和继承默认是public
,而class
默认是private
。除此之外,两者功能完全相同。通常struct
用于表示简单的数据结构,class
用于封装复杂行为和数据。C++保留struct
关键字主要是为了兼容C语言,保证简单数据结构的无缝使用。
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)
阅读剩余
版权声明:
作者:讳疾忌医-note
链接:https://www.1217zy.vip/archives/1224
文章版权归作者所有,未经允许请勿转载。
THE END