Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 3, wyłączony) C4265

"classname": klasa ma funkcje wirtualne, ale jej nietrywialny destruktor nie jest wirtualny; wystąpienia tej klasy mogą nie być poprawnie zdestrukturowane

Jeśli klasa ma funkcje wirtualne, ale niewirtualny destruktor, obiekty typu mogą nie zostać prawidłowo zniszczone, gdy klasa zostanie zniszczona za pomocą wskaźnika klasy bazowej.

To ostrzeżenie jest domyślnie wyłączone. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone.

Poniższy przykład generuje C4265:

// C4265.cpp
// compile with: /W3 /c
#pragma warning(default : 4265)
class B
{
public:
   virtual void vmf();

   ~B();
   // try the following line instead
   // virtual ~B();
};   // C4265

int main()
{
   B b;
}