在C++中struct 与 class 区别
- struct中的成员默认是public。class中默认的是private
- 如果没有多态和虚拟继承,在C++中,struct和class的存取效率完全相同。
- 在用模板的时候只能写
template <class Type>或template<typemname Type>
不能写template<struct Type>
4.++中struct的继承
struct A
{
char a;
};
struct B:A
{
char b;
};
//B是public继承A的,如果将struct全部改写为class则B是private继承A的(这就是默认的继承访问权限),平常我们一般写成: struct B:public A {};
//继承到底是public继承还是private继承,取决于子类而不是基类,struct可以继承class,同样class也可继承struct,那么默认的继承访问权限是看子类到底是用struct还是class;eg:
struct A
{};
class B:A //private继承
{};
struct C:B //public继承
{};
//eg:
struct A
{
char c;
int i;
double d;
};
A a={'p',7,3.1415926};//定义时直接赋值
//也就是说struct在定义的时候用{}赋初值。向该struct中加入一个构造函数(或虚函数),struct也不能用{}赋初值了,表示加入该函数使类的内部结构发生了变化,而加入一个普通函数则不影响该功能。