实验六__继承三_——_多继承及继承的应用
电脑学问文档
试验六继承㈢——多继承及继承的应用
一、试验目的
1.理解多继承的概念,熟识多继承的定义及应用;
2.理解多继承方式下的二义性产示y的值
show_z();//显示z的值
}
};
voidmain()
{Zobj1(3,4,5),obj2;
(10,20,30);
();cout<<endl;
();cout<<endl;
}
问题:
电脑学问文档
⑴编译该程序,会出现编译错误,其缘由是在定义Z类的print()成员函数中的show()函数调用时出现了
⑵将“show();
⑶将“show();。解决的方法是://显示x的值”中的“show()”改为//显示y的值”中的“show()”改为
⑷调试胜利后的输出结果是:
⑸
是成员函数voidset_xyz(inta,intb,intc)中“set_x(a)”的作用,“set_y(b)”的作用是。
程序2〔〕
#include<>
classbase
{private:
inta;
public:
base(intx)
{a=x;
cout<<Constructingbasea=<<a<<endl;
}
};
classbase1:publicbase
{private:
intb;
public:
base1(intx1,intx2):base(x1)
{b=x2;
cout<<Constructingbase1b=<<b<<endl;
}
};
classbase2:publicbase
{private:
intc;
public:
base2(intx1,intx2):base(x1)
{c=x2;
cout<<Constructingbase2c=<<c<<endl;
}
};
classderived:publicbase1,publicbase2
{private:
intd;
public:
电脑学问文档
derived(intx1,intx2,intx3,intx4):base1(x1,x2),base2(x1,x3)
{d=x4;
cout<<Constructingderivedd=<<d<<endl;
}
};
voidmain(void)
{derivedobj(2,3,4,5);}
问题:
⑹编译运行程序的输出结果是:
⑺从输出结果中可看出,间接基类“base”被调用了两次,产生缘由是“derived”的两个干脆基类“base1”、“base2”拥有共同基类“base”,产生了。
⑻将程序中“classbase1:publicbase”改为“classbase1:virtualpublicbase”
“classbase2:publicbase”改为“classbase2:virtualpublicbase”
“derived(intx1,intx2,intx3,intx4):base1(x1,x2),base2(x1,x3)”改为
“derived(intx1,intx2,intx3,intx4):base(x1),base1(x
实验六 继承三 —— 多继承及继承的应用 来自淘豆网m.daumloan.com转载请标明出处.