Проверка * это * 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

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