C 语言中下面程序的运行结果是__?

#include 
using namespace std;

class Base
{
    int x;
public:
    Base(int b) :x(b){}
    virtual void display()
    {
        cout << x << endl;
    }
};

class Derived :public Base
{
    int y;
public:
    Derived(int d) :Base(d), y(d){}
    void display()
    {
        cout << y << endl;
    }
};

int main()
{
    Base b(2);
    Derived d(3);
    b.display();
    d.display();
    Base* p = &d;
    p->display();
    system("pause");
    return 0;
}
1242 次浏览
  • A、2 3 2
  • B、2 3 3
  • C、3 2 2
  • D、2 2 3
用基类的指针指向派生类的对象,使用基类调用虚函数,仍然会调用派生类的函数,从而,第三个display会输出3。
挑战成功
2年前
挑战失败
2年前