"автоматическая" разница между указателями и ссылками

Учитывая этот код:

int& some_class::ret_ref(){
    return this->some_integer;
}
int* some_class::ret_ptr(){
    return &(this->some_integer);
}

int main(){
    some_class c;
    auto p=c.ret_ptr();
    auto r=c.ret_ref();
}

Во время компиляции:

  • p является int*
  • r является int

Почему auto выводится как int* в p и это не было выведено как int& в r?

Какое правило здесь?

0 ответов

Другие вопросы по тегам