本文介绍了如何初始化const/非const静态引用成员?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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静态引用?
Q1> how to initialize const static reference?
Q2>如何初始化非常量静态引用?
Q2> How to initialize non-const static reference?
注意:您可以对FooA类进行更改,以说明方法.
Note:You can make changes for class FooA in order to illustrate the methods.
推荐答案
以与初始化非引用 static
成员相同的方式:
In the same way you initialize non-reference static
members:
//Foo.cpp
const Foo & FooA::m_foo = fooObj1;
Foo & FooA::m_foo2 = fooObj2;
其中 fooObj1
和 fooObj2
是类型为 Foo
的全局变量.
where fooObj1
and fooObj2
are global variables of type Foo
.
注意 fooObj1
和 fooObj2
必须在 m_foo
和 m_foo2
之前初始化,否则您可能会遇到静态初始化顺序惨败问题.
Note fooObj1
and fooObj2
must be initialized before m_foo
and m_foo2
, otherwise you might face static initialization order fiasco problem.
这篇关于如何初始化const/非const静态引用成员?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!