Нормальная переменная может быть инициализирована в конструкторе, в его списке инициализатора члена, но вам не нужно:
A::A(int i) :
x(i) { /* c'tor */ }
Ссылка может быть инициализирована только из конструктора, и вы must инициализируйте его:
A::A(int& r) :
y(r) { /* c'tor */ }
Теперь поле y в A будет ссылаться на ту же переменную, что и r, это не ее копия.
Статическая переменная должнабыть инициализированным вне класса, возможно, в отдельном исходном файле, вы должны сделать это, если хотите получить доступ к этой статической переменной.
int A::z = 0;