来自:http://blog.sina.com.cn/s/blog_48f587a80100k630.html
C++中的struct是对C中struct进行了扩展,它不单是一个包含不同数据类型的数据结构了,它还有其他很多的功能,例如:
1. 声明变量和方法
2. 继承
3. 实现多态
struct与class之间的两点区别:
区别一:默认的继承访问权限
struct继承时默认的是public继承,class默认的是private,这也就是为什么在C++中实现继承时总是写成下面这种形式的原因(明确指定是public继承):
1 class Affect1 : public Affect{}
struct继承时:
1 struct A 2 { 3 char a; 4 } 5 6 struct B : A 7 { 8 int n; 9 }
上述代码中结构体B对于A的继承是public。
此外,class也能继承struct,struct也能继承class,那么继承是public还是private的取决于子类,例如:
1 struct A{}; 2 class B : A{}; //子类是class,private继承 3 struct C : B{}; //子类是struct,public继承
区别二:对于自身数据默认的访问权限
struct默认的数据访问权限是public的,而class对成员变量默认的访问权限是private的。