阅读下列说明、图和C++代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

admin2022-08-02  41

问题 阅读下列说明、图和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;【问题1】 关于上述C++代码中sh 和 tr的以下叙述中,哪两个是正确的(写出编号)。  ① sh 和 tr分别引用同一个对象;  ② sh 和 tr分别引用同一类型的不同的对象;  ③ sh 和 tr分别引用不同类型的不同对象;  ④ sh 和 tr分别引用同一个对象的不同拷贝;  ⑤ sh 和 tr所引用的内存空间是相同的。【问题2】 写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。  tr->height()    (1)  sh->perimeter()     (2)     sq->height()    (3)     sq->perimeter() (4)     sh->height()    (5)     tr->perimeter() (6)   【问题3】 不考虑内存释放问题,下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)。  ① sq = sh;  ② sh = tr;  ③ tr = sq;  ④ sq = tr;  ⑤ sh = sq;

选项

答案

解析
转载请注明原文地址:https://tihaiku.com/congyezige/2428132.html

最新回复(0)