【发布时间】:2018-08-08 09:18:07
【问题描述】:
说我有
class A {
public:
A();
A(int);
static const int foo;
int bar;
}
如果我想在构造函数中初始化静态成员,我该如何构造类?这个:
A::A()
{
foo = 123;
bar = 42;
}
A::A(int b)
{
foo = 123;
bar = b;
}
似乎可以工作,但是如果静态成员foo 在类的所有实例之间共享,我怎么可以将它初始化两次?好像我做错了什么。
【问题讨论】:
-
代码无法编译。此外,您将无法分配给
foo,因为它是const-qualified。 -
区分初始化和赋值。
-
哎呀,
A(bar);是构造函数,当类被实例化为 int 作为参数时。 -
哪个版本的 C++? (11、14、17)?
-
IDK,它实际上是 arduino 嵌入式代码,它是 C++ 的子集,编译器选项包括
-std=gnu++11所以我猜是 11..?