运行下列代码,屏幕输出( )。
class shape { protected: int width, height;
public:
shape(int a=0,int b=0){width=a;height=b;}
virtual int area(){ cout<<"parent class area: "<<endl; return 0; }
};
class rectangle: public shape { public:
rectangle(int a=0,int b=0):shape(a,b){}
int area(){ cout<<"rectangle area: "; return width*height; }
};
class triangle: public shape { public:
triangle(int a=0,int b=0):shape(a,b){}
int area(){ cout<<"triangle area: "; return width*height/2; }
};
int main(){
shape *pshape; rectangle rec(10,7); triangle tri(10,5);
pshape=&rec; pshape->area();
pshape=&tri; pshape->area();
}
- A. rectangle area: triangle area:
- B. parent class area: parent class area:
- C. 运行时报错
- D. 编译时报错
正确答案:A