c++ 中struct和class的区别

来源:互联网 发布:明星服装店淘宝店 编辑:程序博客网 时间:2024/05/21 07:13

struct 可以理解为一种数据结构,在C中是可以包含任何不同的数据类型,比如

struct A

{

char c1;

int i2;

double d3;

}


C++中的struct是对C中struct的扩充,扩充的内容比如:struct可以

  • 包含成员函数
  • 可以继承
  • 可以多态
这样就和class的功能很像了,但是它们还是有区别地:
  • 继承的默认访问权:struct是public的,class是private的;
  • 成员变量的访问权:struct作为数据结构的实现体,它默认的成员变量访问权是public的,而class默认的是private的;
  • struct里面如果定义了构造函数,就不能再用{}赋初始值了,如果没有定义构造函数,还是可以用{}初始化的, 例如A a={'a', 5, 1.234};;对于class的话,如果定义了构造函数,就肯定不能用{}初始化,但是如果没有定义构造函数,而且所有成员变量都是public的话,也可以用{}初始化;

0 0
原创粉丝点击