结构体&共用体@C++
结构体是一种特殊的类(在c++中用的不多,很多时候是为了与c语言兼容才使用)
与类的区别
类默认访问属性为private
而结构体默认访问属性是public
struct 名称{
共有成员(默认)
protected:
private:
};
什么时候用结构体不用类
定义主要用来保存数据但没有什么操作的类型时
结构体中可以有函数成员(C不可)
初始化
结构体的全部数据成员都是公共成员
无用户定义函数
无基类和虚函数
初始化可以以如下方式进行
类型名 变量名 = {成员数据1初值,成员数据2初值,...}
联合体(不常用但是很有用)
联合体的根本目的 存储空间的共用
定义形式
union 名称{
共有成员(默认)
protected:
private:
};
所用成员共用存储单元
任意两个成员不会同时有效
union Mark { char grade; bool pass; int percemt; };
以上是联合体的一个例子
成绩只可能是一种形式 百分制 通过 等级
那么联合体就达到了这种功能 给它分配它的内存为最大成员所占内存 上例 int如果是占用4个字节,那么联合体Mark也占用4个字节
如果,作为grade存入 将来取出也只能作为grade 其他成员无效,但如果再次存,这次存percent,那么grade就会被盖掉,因为是共有存储空间
也可以不使用联合体名
union
{
char grade;
bool pass;
int percemt;
};//这样可以直接使用grade pass等而不用加联合体名,注意,它们共享一块内存