Объявление переменной с константой и ссылкой

StackOverflow https://stackoverflow.com//questions/25031577

  •  21-12-2019
  •  | 
  •  

Вопрос

Меня смущают объявления переменных со ссылками.Я прочитал несколько страниц, и это меня еще больше запутало, поэтому я предпочел спросить здесь.

На собеседовании по C++ мне задали 4 вопроса;кто из них не прав и почему?

(1) int & n;
(2) const int & n=15;
(3) float x; const int & n =x;

Может кто-нибудь объяснить, что не так и почему?

Это было полезно?

Решение

tl;dr Ссылки должны быть инициализированы при объявлении (непосредственно или при инициализации класса).

int& n;

Это оставляет ссылку n неинициализированный.Ссылки должны быть инициализированы при объявлении.

const int& n = 15;

Здесь нет ничего плохого.Ссылка на const int инициализируется 15.

float x; const int& n = x;

А float это нормально, но оставлять неинициализированным — плохая идея.Ссылка n инициализируется в x (применимы преобразования с плавающей запятой/целым числом), это тоже не лучшая идея.

Другие советы

Ссылка всегда должна быть инициализирована.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top