после объявления указатель на int не равен NULL, тогда как указатель на класс равен NULL.указатель на класс vs указатель на встроенные типы
int *pint;
MyClass *Myob;
if (pint){
cout << "pint is not null";
}
if (!Myob){
cout << "Myob is null";
}
Почему не указатели на встроенные типы и указатели на классы ведут себя одинаково?
Их поведение должно быть неопределенным. Вы не инициализировали свои указатели. Это также не питон. Объекты (или указатели, если на то пошло), по умолчанию, не будут «ложными», если они имеют значение null (или nullptr в этом случае). Они ничего не будут. – DarmaniLink
Повысить уровень предупреждения вашего компилятора и обработать предупреждения как ошибки. –
В C++ вы можете использовать интеллектуальные указатели и избегать множества проблем. Используйте их вместо –