C ++中的Struct构造函数?

六眼飞鱼酱① 提交于 2020-03-14 10:58:02

struct是否可以在C ++中使用构造函数?

我一直试图解决这个问题,但我没有得到语法。


#1楼

struct TestStruct {
        int id;
        TestStruct() : id(42)
        {
        }
};

#2楼

在C ++中, classstruct之间的唯一区别是成员和基类在类中默认是私有的,而默认情况下它们在结构中是公共的。

所以结构体可以有构造函数,语法与类相同。


#3楼

是。 结构就像一个类,但默认为public: :,在类定义中和继承时:

struct Foo
{
    int bar;

    Foo(void) :
    bar(0)
    {
    }
}

考虑到你的其他问题,我建议你阅读一些教程 。 他们会比我们更快,更完整地回答您的问题。


#4楼

是的,C ++中的结构和类是相同的,除了结构成员默认是公共的,而类成员默认是私有的。 你可以在一个结构中做的任何事情。

struct Foo
{
  Foo()
  {
    // Initialize Foo
  }
};

#5楼

是的,但如果你的结构是联盟,那么你就不能。 它与班级相同。

struct Example
{
   unsigned int mTest;
   Example()
   {
   }
};

工会不允许结构中的构造函数。 您可以在联合上创建构造函数。 这个问题涉及工会中的非平凡建构者。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!