c ++ —direct— доступ членов класса в теле функций, не являющихся членами

Следующий пример явно неверен, но я хотел бы знать, возможно ли достичь чего-то вроде следующего

extern int return_value();

class A {
private:
int k = 1;
public:
friend int return_value();
};

int return_value()
{
return k;
}

Я знаю, что не могу сделать следующее, не передав экземпляр класса A в функцию return_value() как return_value(A &a) затем доступ к переменной как a.k

обратите внимание на функцию return_value() это пример. Я хотел бы знать, есть ли способ в рамках языка C ++, чтобы разрешить прямой доступ к переменным в телах функций, не являющихся членами

0

Решение

AFAIK Есть только два способа получить доступ к членам класса (для функций, не являющихся членами).

  1. Либо через экземпляр, как вы описали.
  2. Или без экземпляра, если член объявлен как статический член. То есть оно имеет одинаковое значение для всех объектов этого класса и может быть доступно напрямую с помощью оператора области видимости класса.

Конечно, это предполагает, что область действия разрешает функции доступ к членам класса.

0

Другие решения

Других решений пока нет …