Examveda

What will be the output of the following C++ code?
#include <new>
#include <iostream>
using namespace std;
struct A 
{
    virtual ~A() {  };
    void operator delete(void* p) 
    {
        cout << "A :: operator delete" << endl;
    }
};
struct B : A 
{
    void operator delete(void* p) 
    {
        cout << "B :: operator delete" << endl;
    }
};
int main() 
{
    A* ap = new B;
    delete ap;
}

A. A::operator delete

B. B::operator delete

C. Both A::operator delete & B::operator delete

D. A:operator new

Answer: Option B


Join The Discussion

Related Questions on C plus plus miscellaneous

What is the difference between '++i' and 'i++' in C++?

A. None of the above

B. They both have the same effect

C. '++i' increments the value of 'i' before returning it, while 'i++' increments the value of 'i' after returning it

D. '++i' increments the value of 'i' after returning it, while 'i++' increments the value of 'i' before returning it