gpt4 book ai didi

c++ - 构造函数、类、 union 、结构

转载 作者:行者123 更新时间:2023-11-28 07:42:17 25 4
gpt4 key购买 nike

我想澄清一些关于类、结构和 union 的疑问。我知道类和结构被认为是对象。我想检查 union 是否也被视为对象。从而,我可以在里面有一个构造函数?

union ABC
{
ABC() {};
int x;
}A, B, C

因为我有对象名称。我能做到吗?

Union ABC obj1(); //Call constructor?
A.x; //Variable accessing the member

???第二,如果我 typedef union 怎么办。 A B C 是什么意思?我可以这样做吗

union ABC obj1();
A.x;


typedef union ABC
{
ABC() {};
int x;
}A, B, C

最佳答案

  1. 结构体和类的区别在于默认情况下struct 中的成员是公共(public)的,但在类中是私有(private)的;否则,他们是功能等效的。 union 可以有成员函数(包括构造函数和析构函数),但不能有虚函数。 union 不应有基类。 union 不应用作基类。

  2. union ABC obj1();//调用构造函数?

    不,这不会调用构造函数

    union ABC obj1() 意味着你声明一个名为 obj1 的函数并返回一个 union ABC

  3. 的对象
  4. 两种情况下都存在语法错误,您必须执行以下操作:

    union ABC
    {
    ABC() {};
    int x;
    }A, B, C; //You cannot miss this ;
  5. 你可以这样做:

    typedef union ABC ABCUnion;   then 

    ABCUnion A, B,C;

    同理

    union ABC A, B,C;

关于c++ - 构造函数、类、 union 、结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com