可以归纳为:
struct A
{
char a;
};
struct B : A
{
char b;
};
1、struct作为数据结构实现体,它的数据访问默认是Public公有的,class作为对象的实现体,它的成员变量访问默认是Private私有的。
struct A{};class B : A{};//私有继承
struct C : B{};//公有继承
struct可以继承class,class也可以继承struct,是Public公有继承还是Private私有继承取决于子类而非基类(父类)。
2、class可以用来定义模板,struct则不可以。
3、struct的特性是面向过程的,class则是面向对象的。一般在struct中不用构造函数或者虚函数,如果添加,则特性与class相同,访问权限也变为私有的。
struct A
{
char a;
int b;
double c;
};
A a = {'a',1,1.1};//定义时直接赋值
将上面代码中的struct换成class,则会报错,原因是改为class则结构中的数据访问就变为私有。
除了上述三种区别,struct与class几乎一样。