首页 > 试题广场 >

以下代码运行后的输出结果是() #include 

[单选题]
以下代码运行后的输出结果是()
#include using namespace std;
class A 
  {
public:
  void virtual print()
	{
	  cout << "A" << endl;
	}
};

class B : public A
{
public:
	void virtual print()
	{
		cout << "B" << endl;
	}
};
int main()
{
	A* pA = new A();
	pA->print();
	B* pB = (B*)pA;
	pB->print();
	delete pA, pB;
	pA = new B();
	pA->print();
	pB = (B*)pA;
	pB->print();
}
using namespace std;
class A{
    public:void virtual print(){
        cout << "A" << endl;}
    };
class B : public A{
    public:void virtual print(){
        cout << "B" << endl;}
    };
    int main(){
        A* pA = new A();
        pA->print();
        B* pB = (B*)pA;
        pB->print();
        delete pA, pB;
        pA = new B();
        pA->print();
        pB = (B*)pA;
        pB->print();
}
  • 运行报错

  • ABBA

  • AABB

  • ABBB

看指向的对象是啥类型,而不是看指针的类型
发表于 2020-06-11 16:33:48 回复(0)
第一行就错了,怎么不是运行报错
发表于 2020-09-12 13:26:39 回复(3)
delete允许回收同一块地址,不会出错(但不建议)。
发表于 2021-05-24 15:53:45 回复(1)
老阴比题目
发表于 2020-02-11 22:35:17 回复(0)