c++ struct和class

发布时间 2023-04-05 18:56:51作者: _Explosion!

c++中对象通常用struct和class表示。

在c语言中,struct用来创建结构体,结构体中只能包含基本数据成员。

而在c++中struct能包含成员函数,能实现多态(继承)。

c++中struct和class的功能十分类似,但是在面向对象的过程中class的使用较多,两者的区别如下:

struct与class的主要区别在于默认权限方面:

class的成员默认权限为private,struct的成员默认权限为public。因此在主函数中可以直接通过stu1.m_name来访问到Student的成员变量。
class的继承默认是private继承,struct的继承默认是公有继承。

struct作为数据结构的实现体,它默认的数据访问控制是public的,而class作为对象的实现体,它默认的成员变量访问控制是private的
除此之外,在模板的使用方面:

class可以作为一个关键字定义模板参数(与typename作用一样),而struct不可以
class和struct都可以使用模板。比如STL中的很多容器就用到了模板结构体。

 

参考文章https://blog.csdn.net/Kallou/article/details/124476706?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-124476706-blog-50602648.235^v27^pc_relevant_3mothn_strategy_and_data_recovery&spm=1001.2101.3001.4242.1&utm_relevant_index=3