C++中的class ,struct,union


三者异同

class和struct没有什么区别,都可以包含成员函数,可以继承,可以实现多态等等,不同之处如下:

 class 默认是private struct 默认是public
 class 继承后,默认成员访问是private,struct 继承也是public
 如果定义了构造函数,二者都不能使用大括号进行初始化,如果没有构造函数,struct可以用{}初始化,class 只有当所有成员都是public的时候才能使用{}进行初始化。
 C和 C++中的union: 
    一种数据结构,在C中是一个结构体,在C++中是一个类,可以有访问权限,成员函数,成员变量,构造和析构。
    不能有虚函数和静态变量,也不能被继承和被继承
    union是共享内存,每个成员函数的起始地址相同,大小是最大的子成员的大小
    可以用union来测试大小端.
union cpu{
        int a,int b
        }c;c .a = 1;return c.b==1;
        //true 为小端否则为大端