4 / 7

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

【C++代码】  Triangle *tr = new Triangle();

  Square *sq = new Square();
  Shape *sh = tr;