下列等式正确的是()?
class Af{virtual ~A(){}}; class Bf{virtual ~B(){}}; class C:public A,public B{ }; C* pC = new C(); A*pA=(A*)pC; B*pB=(B*)pC;
struct Base1 {...}; struct Base2 {...}; struct Derived : Base1, Base2 {...};
Base1 *pb1 = new Derived; pb1->polymorphicFunction();
Base2 *pb2 = new Derived; delete pb2;
Derived d; Base2 b2 = d;
struct Base {...}; struct Base1 : virtual Base {...}; struct Base2 : virtual Base {...}; struct Derived : Base1, Base2 {...};
struct Derived: Base1,Base2,...,BaseN {...} BaseN *pbn = new Derived;
struct Base1 { virtual ~Base1() {} virtual void v1() {} virtual void v() {} }; struct Base2 { virtual ~Base2() {} virtual void v2() {} virtual void v3() {} virtual void v() {} }; struct Derived : Base1, Base2 { ~Derived() override {} void v3() override {} void v() override {} };
Base2 *pb2 = new Derived; delete pb2;
#include<iostream> using namespace std; class A { public: virtual ~A() {}; }; class B { public: virtual ~B() {}; }; class C :public A, public B { }; int main() { C* pC = new C(); A* pA = (A*)pC; B* pB = (B*)pC; cout << pA << endl; cout << pB << endl; cout << pC << endl; system("pause"); return 0; }
class C :public B, public A { };
执行结果为: 0xc91a10 0xc91a18 0xc91a10 选A
pA == pC && pB == pC题目一点都不严谨!!!😪