Virtual Destructor
unknown
c_cpp
4 years ago
400 B
4
Indexable
#include<iostream>
class A {
public:
virtual ~A() = 0;
};
A::~A(){ std::cout << "A::~A"; }
class B: public A {
public:
~B() { std::cout << "B::~B"; }
};
int main() {
A *a = new A(); // <--- NON COMPILA, perche' A e' astratta
A *ab = new B(); // <--- COMPILA, e stampa B::B~ A::~A() quando viene distrutto
B *b = new B(); // <--- COMPILA, e chiama B::B~ A::~A() quando viene distrutto
}Editor is loading...