问题
单项选择题
有如下程序: #include <iostream> using namespace std; class shapes { protected:int x, y; public:void setvalue(int d, int w=O){ x=d; y=w;}virtual void disp()=O; }; class square : public shapes { public:void disp (){ cout<<x*y<<end1;} }; int main ( ) {shapes *ptr;square s1;ptr=&s1;ptr->setvalue (10, 5) ;ptr->disp();return 0; } 执行上面的程序将输出( )。
A.50
B.5
C.10
D.15
答案
参考答案:A
解析: 本题中基类shapes是一个抽象类(拥有纯虚函数disp())。在主函数中定义了抽象类的对象指针ptr,并给它赋值派生类square的对象s1,然后进行赋值和输出的操作。