18.21
a.CADVehicle多重继承,正确,Vehicle将是默认的private继承
b.错误,不能多重继承同一个基类
c.iostream多重继承istream,ostream,正确
18.22
猜测:规则是从基类开始构造,按继承列表顺序进行,
1.A()
2.B()
3.C()
4.X()
5.Y()
6.Z()
7.MI()
18.23
a.可以
b.可以
c.可以
d.可以
18.24
除了print()和析构函数ZooAnimal其他都是不可调用的
18.25
a.MI::print
b.MI::print
c.MI::print
d.MI::~MI()
e.MI::~MI()
f.MI::~MI()
18.26
根据题意,mi.print是想调用Base1::print(int)
可作如下更改
1.不要将函数全部命名为print,作区分
2.在MI内重新重载一个print(int),然后调用基类Base1的print(int)
18.27
a.
Base1::ival;
Base1::dval;
Base1::cval;
Base2::dval;
Derived::sval;
Derived::dval;
MI::ival;
MI::dval;
b.
如果直接使用dval,ival都会产生二义性
c.
MI::dval += Base1::dval + Derived::dval;
d.
Base2::dval = Mi::dval[Mi::dval.size()];
e.
Derived::sval[0] = Base1::cval;
18.28