单选题 有如下程序: #include 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
【答案解析】解析:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个指向派生类对象的基类指针ptr,执行ptr->output后,会执行基类的output函数,输出1,由于Print是虚函数,所以ptr->Print()会执行派生类的Print,即输出D,所以本题答案为B。