问题 问答题


阅读下列说明、图和C++代码,回答问题1至问题3。
【说明】
已知四个类之间的关系如图2-2所示,分别对每个类的方法进行编号,例如Shape的perimeter()方法为1号,表示为1:perimeter(),Rectangle类的perimeter()为2号,表示为2:perimeter(),依此类推,其中,每个类的perimeter方法都为虚函数且方法签名相同。


【C++代码】
Triangle *tr=new Triangle();
Square *sq=new Square();
Shape *sh =tr;

【问题2】 写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。
tr->height() (1)
sh->perimeter() (2)
sq->height() (3)
sq->perimeter() (4)
sh->height() (5)
tr->perimeter() (6)

答案

参考答案:

解析:(1)3 (2)5 (3)无 (4)4 (5)无 (6)5

单项选择题
多项选择题