0
What is the output of the following C++ code, given that Base's destructor is NOT declared virtual?
class Base {
public:
Base() { cout << "Base "; }
~Base() { cout << "~Base "; }
};
class Derived : public Base {
public:
Derived() { cout << "Derived "; }
~Derived() { cout << "~Derived "; }
};
int main() {
Base *b = new Derived();
delete b;
return 0;
}
- ABase Derived ~Base ~Derived
- BBase Derived ~Derived ~Base
- CBase Derived ~Base
- DCompilation error
Correct answer: C