问答题 请使用“答题”菜单或使用VC6菜单打开考生文件夹proj2下的工程proj2,其中包含抽象类Shape的声明,以及在此基础上派生出的类Rectangle和Circle的声明,两者都有计算对象面积的函数GetArea()和计算对象周长的函数GetPerim()。  ThareothCircli78.5  ThperimeteothCircli31.4  ThareothRectangli24  ThperimeteothRectangli20  注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“//**********found**********”。  源程序如下:      
【正确答案】>
【答案解析】第1处:
  virtual
  第2处:
  virtual
  第3处:
  itsLength(len),itsWidth(width)或
  itsWidth(width),itsLength(len)
  第4处
  Shape *sp;
  分析:由于第1、2两处后面的代码为“float GetArea()=0”及“float GetPerim()=0”这两个成员函数必为纯虚函数,在C++中,定义虚拟函数要使用“virtual”关键字,故第1、2两处应填“virtual”。
  第3处的作用是利用构造函数的形参初始化类成员变量itswidth、itsLength;故第3空应填“itsWidth(width),itsLength(len)”或其等效形式;第4处由“sp=new Circle(5);”及“sp=new Rectangle(4,6);”已知sp为一指向Circle及Rectangle共同基类的指针,即sp为shape型指针,第4空为“Shape *sp;”。