Например, если метод определен как следующее:Что такое «&» означает в C++, когда речь идет до объявления метода
ILDCRTParams &GetParams() const;
Является ли это по-другому, то:
ILDCRTParams& GetParams() const;
Я использую C++ 11.
Например, если метод определен как следующее:Что такое «&» означает в C++, когда речь идет до объявления метода
ILDCRTParams &GetParams() const;
Является ли это по-другому, то:
ILDCRTParams& GetParams() const;
Я использую C++ 11.
Они точно такие же. Обратный тип: ILDCRTParams&
Нет, они означают одно и то же. C++ - это язык, основанный на токенах, где пробелы несущественны между токенами, кроме как действовать как разделитель. Вы можете написать его как
ILDCRTParams &GetParams() const;
ILDCRTParams& GetParams() const;
ILDCRTParams&GetParams() const;
ILDCRTParams & GetParams() const;
или даже
ILDCRTParams &GetParams( )const;
без каких-либо изменений в значении.
Семантически &
эффективно изменяет ILDCRTParams
, но синтаксически, он изменяет GetParams()
: &GetParams()
указывает, что GetParams()
возвращает ссылку. По этой причине некоторые люди предпочитают размещать его сразу рядом с ILDCRTParams
, а другие рядом с GetParams()
.
Действительно, вы даже можете написать 'ILDCRTParams/* все, что может быть */&/* Давайте посмотрим, понимает ли кто-нибудь этот код */GetParams/* да, правильно. */(/ * Ничего не видно здесь, двигайтесь вперед * /)/* да, еще один комментарий; комментарии делают код читаемым, не так ли? */const; ':-) – celtschk
Хорошо, спасибо! – hadis