如何初始化const/非const静态引用成员? [英] How to initialize const / non-const static reference member?

查看:66
本文介绍了如何初始化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静态引用成员?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆