delete и предекларация класса(warning C4150)

Используя предекларацию класса необходимо быть острожным. Если вызывать delete для предекларированного класса, то получите warning C4150. Это опасно тем, что деструктор для него не вызовется, т.к. объявление класса неизвестно.

Небольшой пример:

H-файл класса A.

class B;
class A
{
public:
A();
~A()
{
	delete pB; // warning C4150
}
private:
B* pB;
};

Теги: C++