选择题   有如下程序:
    #include<iostream>
    using namespace std;
    class base{
    public:
    void output(){cout<<1;}
    virtual void print(){cout<<'B';}
    };
    class derived:public base{
    public:
    void output(){cout<2;}
    void print(){cout<<'D';}
    };
    int main()
    {
    base*ptr=new derived;
    ptr->output();
    ptr->print();
    delete ptr;
    return 0;
    }
    程序的输出结果是______。
 
【正确答案】 B
【答案解析】本题考查虚函数的使用。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。由虚函数实现的动态多态性就是:同一类族中不同类的对象,对同一函数调用作出不同的响应。 题中,基类指针ptr指向动态生成的派生类的对象空间。output()没有虚特性,“ptr->output();”只能访问基类中的函数,输出“1”;print()有虚特性,则“ptr->print();”访问的是派生类中的函数,输出“D”。故答案选B。