struct
是否可以在C ++中使用构造函数?
我一直试图解决这个问题,但我没有得到语法。
#1楼
struct TestStruct {
int id;
TestStruct() : id(42)
{
}
};
#2楼
在C ++中, class
和struct
之间的唯一区别是成员和基类在类中默认是私有的,而默认情况下它们在结构中是公共的。
所以结构体可以有构造函数,语法与类相同。
#3楼
是。 结构就像一个类,但默认为public:
:,在类定义中和继承时:
struct Foo
{
int bar;
Foo(void) :
bar(0)
{
}
}
考虑到你的其他问题,我建议你阅读一些教程 。 他们会比我们更快,更完整地回答您的问题。
#4楼
是的,C ++中的结构和类是相同的,除了结构成员默认是公共的,而类成员默认是私有的。 你可以在一个结构中做的任何事情。
struct Foo
{
Foo()
{
// Initialize Foo
}
};
#5楼
是的,但如果你的结构是联盟,那么你就不能。 它与班级相同。
struct Example
{
unsigned int mTest;
Example()
{
}
};
工会不允许结构中的构造函数。 您可以在联合上创建构造函数。 这个问题涉及工会中的非平凡建构者。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3194301