инициализировать статический член указателем, созданным внутри области - PullRequest
0 голосов
/ 21 января 2019

У меня есть статическая переменная-член в классе A, которая является указателем на объект класса B:

class B{};

class A
{
  static B* b_ptr;
};

Я хочу инициализировать его экземпляром B, который находится внутри другого объекта (c):

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

Я считаю "невозможным" инициализацию, поскольку b_ptr не может быть инициализирован в классе C или вообще в какой-либо области видимости.

Возможно ли это как-то?Если так, то это опрометчиво?

1 Ответ

0 голосов
/ 21 января 2019

Это выглядит нормально для меня (под этим я подразумеваю, что это должно скомпилироваться).

class C
{
public:
  B b;
} c;

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

Но указатели, статические члены, глобальные переменные, все они имеют свое место, но все вместе, кажется, не рекомендуетсяя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...