![](/img/trans.png)
[英]How to initialize non-const member variables with const actual parameter?
[英]How to initialize const / non-const static reference member?
class Foo {
private:
int m_i;
public:
Foo(int i) : m_i(i) {}
};
class FooA
{
private:
const static Foo & m_foo;
static Foo & m_foo2;
};
Q1> 如何初始化 const static 参考?
Q2> 如何初始化非常量 static 参考?
注意:您可以对 class FooA 进行更改以说明方法。
以同样的方式初始化非参考static
成员:
//Foo.cpp
const Foo & FooA::m_foo = fooObj1;
Foo & FooA::m_foo2 = fooObj2;
其中fooObj1
和fooObj2
是Foo
类型的全局变量。
注意fooObj1
和fooObj2
必须在m_foo
和m_foo2
之前初始化,否则你可能会遇到static 初始化顺序惨败的问题。
与任何其他 static 数据成员的方式相同:
Foo foo(5);
const Foo& FooA::m_foo(foo);
Foo& FooA::m_foo2(foo);
您初始化 const 和非 const static 引用的方式与初始化任何 static 成员的方式相同:通过将初始化放在全局 scope 中。
const Foo& FooA::m_foo = ...whatever...
Foo& FooA::m_foo2 = ...whatever...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.