【6.13】 定义基类Base,其数据成员为高h,定义成员函数disp为虚函数。然后再由High派生出长方体类Cuboid与圆柱体类Cylinder。并在两派生类中定义成员函数disp为虚函数。在主函
来源:互联网 发布:淘宝促销词语 编辑:程序博客网 时间:2024/05/29 01:56
#include <iostream>
using namespace std;
class Base{
protected:
double h;
public:
Base(double h1)
{
h=h1;
}
virtual void disp()=0;
};
class cuboid:public Base{
private:
double wid,len;
public:
cuboid(double l,double w,double h1):Base(h1)
{ len=l;
wid=w;
}
void disp()
{ cout<<"cuboid:"<<endl;
cout<<"extent: "<<len<<endl;
cout<<"width: "<<wid<<endl;
cout<<"height: "<<h<<endl;
cout<<"The bulk of cuboid is : "<<len*wid*h<<endl;
}
};
class Cylinder:public Base{
private:
double r;
public:
Cylinder(double h1,double r1):Base(h1)
{ r=r1;
}
void disp()
{ cout<<"cylinder:"<<endl;
cout<<"height: "<<h<<endl;
cout<<"radius: "<<r<<endl;
cout<<"The bulk of cylinder is : "<<3.1415*r*r*h<<endl;
}
};
int main()
{ Base *p;
cuboid cu(4,7,5);
Cylinder cy(6,9);
p=&cy;
p->disp();
p=&cu;
p->disp();
system("pause");
return 0;
}
运行结果:
- 【6.13】 定义基类Base,其数据成员为高h,定义成员函数disp为虚函数。然后再由High派生出长方体类Cuboid与圆柱体类Cylinder。并在两派生类中定义成员函数disp为虚函数。在主函
- 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main
- !!!!!!!!!!!!!!!!C++:派生类中重定义基类的成员函数与虚函数区别在哪里?
- 定义一个哺乳动物Mammal类,再由此派生出狗Dog类,二者都定义 Speak()成员函数,基类中定义为虚函数,定义一个Dog类的对象,调用Speak函数,观察运行结果
- C++ 类的成员函数定义在.h中为什么会产生函数重定义错误?
- 声明一个哺乳动物类Mammal,再由此派生出狗类Dog,二者都定义Speak()成员函数,基类中定义为虚函数,声明类Dog的一个对象,调用函数Speak()
- 编写程序定义Point类,有数据成员X,Y,为其定义友元函数实现重载+。
- 定义下面两个类的成员函数为体验友元类
- 基类期望派生类继承的函数不能定义为虚函数
- 运算符重载 定义为类成员函数or非成员函数
- 虚拟函数:在基类中被声明为virtual,而在派生类中又重新定义了这个函数
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- 例4.10 在派生类中定义同名成员
- 关于模板类中模板成员函数在类定义外部特化报错,错为声明与定义不匹配
- 【黑马程序员】Java学习笔记之面向对象高级篇
- Keil建立STM32项目工程
- Spring AOP声明式事务异常回滚
- VS2010的附加依赖项和库怎么永久保存
- OCP-1Z0-051-2015-31题
- 【6.13】 定义基类Base,其数据成员为高h,定义成员函数disp为虚函数。然后再由High派生出长方体类Cuboid与圆柱体类Cylinder。并在两派生类中定义成员函数disp为虚函数。在主函
- Win7 X64家庭普通版 + VS2012 安装OpenSSL过程
- NuGet学习笔记(2)——使用图形化界面打包自己的类库
- RocksDB介绍:一个比LevelDB更彪悍的引擎
- 使用AmplifyJS和JQuery编写更好更优雅的javascript事件处理代码
- Linux 命令
- 用RapidMiner搭建推荐系统和评论挖掘系统
- ssh远程登录报错REMOTE HOST IDENTIFICATION HAS CHANGED!解决方案及原因
- iOS 学习路线图