Объявляя несколько переменных в C ++, объявляются ли атрибуты для всех этих переменных? - PullRequest
2 голосов
/ 18 ноября 2011

Если я определяю три объекта, например:

const string & textA = messages.at(0), 
               textB = messages.at(1), 
               textC = messages.at(2);

Являются ли textB и textC на самом деле ссылкой?
Должен ли я поместить & перед обоими textB и textC?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 18 ноября 2011

textB и textC не являются ссылками.Думайте о &, как будто он принадлежит переменной, а не типу.

(только что проверил с помощью g ++)

2 голосов
/ 18 ноября 2011

используйте эту запись вместо этого, и вы увидите, что произойдет:

const string     &textA = .., // reference
                 &textB = .., // reference
                 textC = ..; // value

То же относится и к указателям:

const string     *textA = .., // pointer
                 *textB = .., // pointer
                 textC = .. ;// value

Комбинировано

const string     *textA = .., // pointer
                 &textB = .., // reference
                 textC = .. ;// value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...