Недавно я посмотрел на код, а кто-то использовал это:Создание ссылки на разыменованный указатель?
void Foo(vector<vector<int>>* arr_ptr){
vector<vector<int>>& arr = *arr_ptr;
//use arr
}
Есть ли цель создать ссылку на разыменованного указатель? До тех пор пока указатель не равно нулю, не может такой же результат будет выполняться, используя только это:
void Foo(vector<vector<int>>& arr) {
//use arr
}
Действительно, похоже, что они должны изменить функцию, чтобы просто взять ссылку. Но может быть, есть и другие ограничения дизайна (возможно, это виртуальная функция?), Или устаревшая привычка, или просто небрежность. – TheUndeadFish
@ TheUndeadFish: Или он должен быть таким образом, чтобы взаимодействовать с другим кодом не под контролем автора («устаревшая привычка» минус «привычка»). –
@ TheUndeadFish: Поддержание целостности интерфейса вашего кода вряд ли «неряшливо». –