结构体&共用体@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等而不用加联合体名,注意,它们共享一块内存


posted on 2018-03-02 15:35  晴未  阅读(178)  评论(0编辑  收藏  举报