1.建立普通基类Building,用来存储一座楼房的层数、房间数以及他的总平方数。建立派生类House,继承Building,并存储下面的内容:卧室与卧室的数量。另外,建立派生类Office,继承Buiding,并存储灭火器与电话的数目。
下面是自己的解答过程,不是标准答案,但是自己调试没有问题。
#include <iostream>
using namespace std;
class Building
{
private:
int Layer_number;
int room_number;
double total_square;
public:
Building(int a=0,int b=0,double c=0)//定义基类的构造函数
{
Layer_number=a;
room_number=b;
total_square=c;
}
void print()
{
cout<<"Layer_number:"<<Layer_number<<endl;
cout<<"room_number:"<< room_number<<endl;
cout<<"house's total_square:"<<total_square<<endl;
}
};
class House:public Building
{
private:
int badroom_number;
int bathroom_number;
public:
//基类定义了默认构造函数(或根本没有定义),派生类定义中可以省略对基类构造函数的调用,但是如果需求必须初始化
House(int a,int b,int x,int y,double z)
{
badroom_number=a;
bathroom_numb
C++继承与派生:虚函数与多态实践

本文介绍了C++中继承和派生的概念,通过Building、House和Office类作为示例,探讨了基类和派生类中重名函数的调用方法,特别是虚函数的多态调用。文章详细解释了二义性问题,包括基类与派生类之间的二义性和多继承中的二义性,并阐述了虚基类的作用和如何解决二义性问题。此外,还展示了代码实践和运行结果。
最低0.47元/天 解锁文章
1107

被折叠的 条评论
为什么被折叠?



