Проверка * это * PTR в функции члена - хорошая практика?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Проверка * это * PTR в функции члена - хорошая практика?

Сообщение Anonymous »

Предположим, у меня есть класс < /p>

Код: Выделить всё

class Foo {
public:
void fn();
private:
int i;
};
< /code>
и функция поиска < /p>
Foo* findFoo() {
// return nullptr if failed to find
}
< /code>
Мы можем проверить, нашел ли мы Foo, прежде чем вызовать участник < /p>
{
Foo* foo = findFoo();
if (foo) {
foo->fn();
}
}
< /code>
Я думаю, что это оператор «если» является избыточным. Если мы сможем обеспечить поведение по умолчанию для случая Nullptr, это будет более прямым. Итак, я выясняю практику: < /p>

void Foo::fn() {
if (this == nullptr) { return; } // default behavior is to return for nullptr
i; // access to member
}
< /code>
Мы можем использовать его напрямую без проверки nullptr < /p>
{
findFoo()->fn();
}
сравнить «это» с «nullptr» - это точно не обычное использование этого , поэтому мне интересно, есть ли у него некоторые побочные эффекты или недостатки


Подробнее здесь: https://stackoverflow.com/questions/794 ... d-practice
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»