【正确答案】
① class Bed: virtual public Furniture
② class Sofa: virtual public Furniture
③ class Sleepersofa:public Bed,public Sofa
【答案解析】[解析] 本题主要考核多重继承关系的应用。
①程序中的派生类Sleepersofa的基类Bed和Sofa类都是从类Furniture公有继承而来的,直接基类Bed和Sofa中从Furniture继承来的成员拥有相同的名称,这些在程序中容易引起二义性问题。所以应该把类Bed和Sofa设置为虚基类,从不同的路径继承过来的该类成员在内存中就只拥有一个拷贝,从而解决了同名成员的惟一标识问题。所以在第1处应该填入:
class Bed:virtual public Furniture
②解析同上,在第2处应该填入:
classSofa:virtual public Furniture
③Sleepersofa类是在Bed类和Sofa类的基础上按公有继承的方式产生的派生类,所以在第3处填入:
class Sleepersofa:publicBed,public Sofa