Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 3) C4265

"class": klasa ma funkcje wirtualnych, ale destruktora nie jest wirtualna

Gdy klasa posiada funkcji wirtualnych, ale niewirtualne destruktor, obiektów tego typu może nie zostanie zniszczona poprawnie, gdy klasa ulega zniszczeniu za pomocą wskaźnika klasy podstawowej.

To ostrzeżenie jest domyślnie wyłączona.Zobacz Kompilator ostrzeżenia czy są wyłączone domyślnie uzyskać więcej informacji.

Poniższy przykład spowoduje wygenerowanie błędu 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;
}