Вам нужно где-то явно инициализировать aboutDialog в 0. Вероятно, в конструкторе класса, к которому принадлежит этот член.
(!aboutDialog)
- правильный тест.
Учтите следующее:
#include <iostream>
class Thing {
void *data;
public:
Thing(){}
void print() {
std::cout << data << std::endl;
}
};
int main()
{
Thing t;
t.print();
return 0;
}
Попробуйте скомпилировать это и запустить его несколько раз. Скорее всего, он будет печатать что-то другое каждый раз. Зачем? Потому что data
неинициализирован. Содержит мусор. У него столько же шансов быть нулевым указателем, сколько у 0x1234ABCD или 42.
Чтобы это исправить, data
необходимо где-то инициализировать . Самый простой способ - просто сделать это в конструкторе Thing
, как показано ниже:
Thing() : data(0) {}