#include &lt;iostream&gt;    using namespace std;    struct A    &#123;        virtual ~A&#40;&#41;        &#123;             cout &lt;&lt; &quot;~A()&quot; &lt;&lt; endl;         &#125;        void operator delete&#91;&#93;&#40;void* p, size_t&#41;        &#123;            cout &lt;&lt; &quot;A :: operator delete[]&quot; &lt;&lt; endl;            delete &#91;&#93; p;        &#125;    &#125;;    struct B : A     &#123;        void operator delete&#91;&#93;&#40;void* p, size_t&#41;         &#123;            cout &lt;&lt; &quot;B :: operator delete[]&quot; &lt;&lt; endl;            delete &#91;&#93; p;        &#125;    &#125;;    int main&#40;&#41;     &#123;        A* bp = new B&#91;3&#93;;        delete&#91;&#93; bp;    &#125;;
A. ~A()
B. A :: operator delete[]
C. B :: operator delete[]
D. Warning
Answer:A
#include &lt;iostream&gt;    using namespace std;    struct A    &#123;        virtual ~A&#40;&#41;        &#123;             cout &lt;&lt; &quot;~A()&quot; &lt;&lt; endl;         &#125;        void operator delete&#91;&#93;&#40;void* p, size_t&#41;        &#123;            cout &lt;&lt; &quot;A :: operator delete[]&quot; &lt;&lt; endl;            delete &#91;&#93; p;        &#125;    &#125;;    struct B : A     &#123;        void operator delete&#91;&#93;&#40;void* p, size_t&#41;         &#123;            cout &lt;&lt; &quot;B :: operator delete[]&quot; &lt;&lt; endl;            delete &#91;&#93; p;        &#125;    &#125;;    int main&#40;&#41;     &#123;        A* bp = new B&#91;3&#93;;        delete&#91;&#93; bp;    &#125;;
A. ~A() B. A :: operator delete[] C. B :: operator delete[] D. Warning
Explanation:In this program, the behavior of the statement delete[] bp is undefined.