#include &lt;new&gt;    #include &lt;iostream&gt;    using namespace std;    struct A     &#123;        virtual ~A&#40;&#41; &#123;  &#125;;        void operator delete&#40;void* p&#41;         &#123;            cout &lt;&lt; &quot;A :: operator delete&quot; &lt;&lt; endl;        &#125;    &#125;;    struct B : A     &#123;        void operator delete&#40;void* p&#41;         &#123;            cout &lt;&lt; &quot;B :: operator delete&quot; &lt;&lt; endl;        &#125;    &#125;;    int main&#40;&#41;     &#123;        A* ap = new B;        delete ap;    &#125;
A. A::operator delete
B. B::operator delete
C. Both a & b
D. None of the mentioned
Answer:A
#include &lt;new&gt;    #include &lt;iostream&gt;    using namespace std;    struct A     &#123;        virtual ~A&#40;&#41; &#123;  &#125;;        void operator delete&#40;void* p&#41;         &#123;            cout &lt;&lt; &quot;A :: operator delete&quot; &lt;&lt; endl;        &#125;    &#125;;    struct B : A     &#123;        void operator delete&#40;void* p&#41;         &#123;            cout &lt;&lt; &quot;B :: operator delete&quot; &lt;&lt; endl;        &#125;    &#125;;    int main&#40;&#41;     &#123;        A* ap = new B;        delete ap;    &#125;
A. A::operator delete B. B::operator delete C. Both a & b D. None of the mentioned
Explanation:In this program, We are passing the value to the B, So we are printing B::operator delete.