Инициализация частных свойств (значение / ссылка / статика) в классе C ++ - PullRequest
0 голосов
/ 06 октября 2019
class A
{
private:
int x ;
int &y ;
static int z ;

};

Как можно инициализировать эти 3 переменные в этом классе

1 Ответ

0 голосов
/ 06 октября 2019

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

A::A(int i) :
    x(i) { /* c'tor */ }

Ссылка может быть инициализирована только из конструктора, и вы must инициализируйте его:

A::A(int& r) :
    y(r) { /* c'tor */ }

Теперь поле y в A будет ссылаться на ту же переменную, что и r, это не ее копия.

Статическая переменная должнабыть инициализированным вне класса, возможно, в отдельном исходном файле, вы должны сделать это, если хотите получить доступ к этой статической переменной.

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