【C++】struct 与 class的区别(在标准C++中)

在C++中struct 与 class 区别

  1. struct中的成员默认是public。class中默认的是private
  2. 如果没有多态和虚拟继承,在C++中,struct和class的存取效率完全相同。
  3. 在用模板的时候只能写
 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也不能用{}赋初值了,表示加入该函数使类的内部结构发生了变化,而加入一个普通函数则不影响该功能。

猜你喜欢

转载自blog.csdn.net/Wan_shibugong/article/details/82670801