使用范围内生成的指针初始化静态成员

时间:2019-01-21 16:08:10

标签: c++ scope static

我在A类中有一个静态成员变量,它是指向B类对象的指针:

class B{};

class A
{
  static B* b_ptr;
};

我想用位于另一个对象(c)内的B实例初始化它:

class C
{
  B b; // <--- I want b_ptr to point to this object
} c;

我发现初始化“是不可能的”,因为b_ptr不能在C类或实际上在任何范围内初始化。

有可能吗?如果是这样,这是不明智的做法吗?

1 个答案:

答案 0 :(得分:4)

对我来说,这看起来不错(我的意思是应该编译)。

class C
{
public:
  B b;
} c;

B* A::b_ptr = &c.b;

但是指针,静态成员,全局变量,它们都有它们的位置,但是对我来说,所有这些似乎都是不明智的。