• C++中,什么叫类,结构,联合?


    在C++中 class 和 struct 本质上一样 可以互用
    class的成员默认是private的,struct的成员默认是public的
    但一般习惯把成员变量隐藏的用class申明, 成员变量可以公开访问并且比较简单的用struct申明(个人理解是struct是从c来的,在c中就是那么用的)

    至于union,不论其内部有多少成员,在任意时刻,只有一个可用,因为所有成员公用的一个地址
    例如
    union A
    {
    int a;
    float f;
    struct ST st;
    };
    中的三个变量 a,f,st的地址都是一样的,也就是在一起的,
    但sizeof(A) 的大小是其中变量最大的一个的大小(不考虑字节对其啥的)
    这是因为三个变量在同一地址,所以其大小必须能够满足任意一个变量使用,所以就必须使用最大的那个了

    union在很多地方跟struct类似,也可以实现数据函数的封装,但有一些特别的地方。1、一个时点上只有一个成员有值,(换句话说,所有成员使用的是同一块内存)。2、不能做基类,也就没有虚函数。3、不能有静态和引用成员。4、不能嵌套类(实际上是不能拥有具有构造函数、析构函数、赋值操作的成员,如果仅仅是数据封装还是可以的)

  • 相关阅读:
    P1119 灾后重建
    P1453 城市环路
    21.10.28模拟 C
    21.10.28模拟 String Coloring AGC26 C
    P1155 [NOIP2008 提高组] 双栈排序
    21.10.27模拟 solve
    21.10.27模拟 P4157 [SCOI2006]整数划分
    P2168 [NOI2015] 荷马史诗
    P3052 [USACO12MAR]Cows in a Skyscraper G
    P2533 [AHOI2012]信号塔 P1742 最小圆覆盖
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/5203233.html
Copyright © 2020-2023  润新知