Examveda

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

A. ~A()

B. A :: operator delete[]

C. B :: operator delete[]

D. Warning

Answer: Option D


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