问答题
阅读下列说明、图和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;
【问题3】
不考虑内存释放问题,下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)。 ①sq=sh;
②sh=tr; ③tr=sq; ④sq=tr;
⑤sh=sq; |
【参考答案】
② ⑤[分析] 根据C++代码: Triangle *tr=new Triangle(); Square *sq=new......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)