C++ struct与class 的区别

C++中的struct对C中的struct进行了扩充,考虑到“对c兼容”就将struct保留了下来,并做了一些扩展使其更适合面向对象。它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。

1.默认访问控制不同
struct 与 class最本质的一个区别就是默认的访问控制。
在默认的继承权限和默认访问权限里,struct是public的,class是private的。
2.{}初始化特点不同
class和struct如果定义了构造函数,就不能用大括号进行初始化了;若没有定义,struct可以用大括号初始化,而class只有在所有成员变量全是public的情况下,才可以用大括号进行初始化。

故struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章