1.设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生出来的

要求输出一个圆桌的高度,面积与颜色等。

#include<iostream>
#include<string>
using namespace std;
#define PI 3.14;
class circle
{
public:
circle()
{
//默认构造函数
}
void setR(double r)
{
m_r = r;
}
double getR()
{
return m_r;
}
double getArea()
{
double area;
area = m_r *m_r * PI;
return area;
}
protected:
double m_r;//圆的半径
}; class table
{
public:
table()
{
//默认构造函数
}
void setHigh(double high)
{
m_high = high;
}
double getHigh()
{
return m_high;
}
protected:
double m_high;//桌子的高度
}; class roundtable : public circle, public table
{
public:
roundtable()
{
//构造函数 }
void setC(string color)
{
m_color = color;
}
string getC()
{
return m_color;
}
private:
string m_color;//圆桌的颜色
};
int main()
{
roundtable r1;
r1.setR(2.0);
r1.setHigh(1.3);
r1.setC("紫色");
cout << "圆桌的高为:" << r1.getHigh() << "米" << endl;
cout << "圆桌的面积为:" << r1.getArea() << "平方米" << endl;
cout << "圆桌的颜色为:" << r1.getC() << endl;
system("pause");
return 0;
}

2.定义描述矩形的类~~~~(题目略)

#include<iostream>
#include<string>
using namespace std;
class Rectangle
{
public:
Rectangle() {}
int CalArea()
{
int area;
area = m_Length * m_Width;
return area;
}
void setLength(int l)
{
m_Length = l;
}
int getLenght()
{
return m_Length;
}
void setWidth(int w)
{
m_Width = w;
}
int getWidth()
{
return m_Width;
}
protected:
int m_Length;
int m_Width;
}; class Cuboid :public Rectangle
{
public:
Cuboid(int l, int w, int h)
{
m_Length = l;
m_Width = w;
m_Chigh = h;
}
int CalVol()
{
m_Volume = m_Length * m_Chigh * m_Width;
return m_Volume;
}
void Show()
{
cout << "长方体的长为:" << m_Length << endl;
cout << "长方体的宽为:" << m_Width << endl;
cout << "长方体的高为:" << m_Chigh << endl;
cout << "长方体的体积为:" << CalVol() << endl;
}
private:
int m_Chigh;
int m_Volume;
}; int main()
{
Cuboid c1(10,20,30);
c1.Show();
system("pause");
return 0;
}

运行截图

3.定义一个车基类(题目略)

#include<iostream>
#include<string>
using namespace std;
class Vehicle
{
public:
Vehicle(int ms, int mw)
{
m_MaxSpeed = ms;
m_Weight = mw;
}
int getMaxSpeed()
{
return m_MaxSpeed;
}
int getWeight()
{
return m_Weight;
}
void Run()
{
cout << "车的最大速度为:" << m_MaxSpeed << endl;
cout << "车的重量为:" << m_Weight << endl;
}
void Stop()
{
cout << "车辆停下" << endl;
}
~Vehicle(){}
protected:
int m_MaxSpeed;
int m_Weight;
};
//虚基类的virtual可以写在public前面,如
//virtual public Vehicle
//也可以写在public后面
class bicycle :public virtual Vehicle
{
public:
bicycle(int ms, int mw, int h) :Vehicle(ms, mw)
{
m_height = h;
}
int getHeight()
{
return m_height;
}
void Run()
{
cout << "自行车的高为:" << m_height << endl;
}
void Stop()
{
cout << "自行车已停下" << endl;
}
~bicycle(){}
private:
int m_height;
}; class Motorcar :public virtual Vehicle
{
public:
Motorcar(int ms, int mw, int sn) :Vehicle(ms, mw)
{
m_SetNum = sn;
}
int getSetNum()
{
return m_SetNum;
}
void Run()
{
cout << "汽车的座位数为:" << m_SetNum << endl;
}
void Stop()
{
cout << "汽车已停下" << endl;
}
~Motorcar() {}
private:
int m_SetNum;
}; class motorcycle :public bicycle, public Motorcar
{
public:
motorcycle(int ms, int mw, int h, int sn) :Vehicle(ms, mw), bicycle(ms, mw, h), Motorcar(ms, mw, sn)
{ }
void Run()
{
cout << "这是motorcycle" << endl;
cout << "速度为:" << getMaxSpeed() << endl;
cout << "高度为:" << getHeight() << endl;
cout << "重量为为:" << getWeight() << endl;
cout << "座位数为:" << getSetNum() << endl;
}
void Stop()
{
cout << "motorcycle stopped" << endl;
}
~motorcycle(){}
}; int main()
{
Vehicle v1(10, 20);
v1.Run();
v1.Stop();
}

学习记录--C++继承与派生编程题的更多相关文章

  1. 程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1

    描述 写一个MyString 类,使得下面程序的输出结果是: 1. abcd-efgh-abcd- 2. abcd- 3. 4. abcd-efgh- 5. efgh- 6. c 7. abcd- 8 ...

  2. C++学习之路—继承与派生(一):基本概念与基类成员的访问属性

    (本文根据<c++程序设计>(谭浩强)总结而成,整理者:华科小涛@http://www.cnblogs.com/hust-ghtao,转载请注明) 1   基本思想与概念 在传统的程序设计 ...

  3. buu学习记录(下)(做题是不可能做题的)

    目录: easy_calc 禁止套娃 EasyWeb Babysqli Easyweb easy_serialize_php 我有一个数据库 SSRFme 枯燥的抽奖 EasyPHP 题目解析: ea ...

  4. 【C++学习笔记】继承与派生基础概念

    面向对象的程序设计主要有四个特点:抽象.封装.继承和多态.其中继承是我认为最最重要的一个特性,可以说继承是面向对象的精华所在. 举一个继承的浅显易懂的例子:假如我们已经有了一个“马”的类,其中成员变量 ...

  5. C++学习之路—继承与派生(四)拓展与总结

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 1    拓展部分 本节主要由两部分内容组成,分 ...

  6. C++学习之路—继承与派生(三):多重继承与虚基类

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 多重继承是指一个派生类有两个或多个基类.例如,有 ...

  7. C++学习之路—继承与派生(二):派生类的构造函数与析构函数

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 由于基类的构造函数和析构函数是不能被继承的,所以 ...

  8. java学习记录笔记--继承,super,Object类

    继承: Java中的继承是单继承的. 1.子类拥有父类的全部属性和方法. 可是属性和方法的修饰符不能使private. 2.能够复用父类的代码. 方法的重写须要满足的条件: a.返回值类型 b.方法名 ...

  9. python核心编程学习记录之函数与函数式编程

    @func function 意思是func(function) @func(a) function 意思是func(a)这是个函数对象,在去调用function函数 如果要传额外的值,只传值用*tu ...

  10. POJ C++程序设计 编程题#1 编程作业—继承与派生

    编程题#1 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 写一个MyStr ...

随机推荐

  1. 2022-3-11内部群每日三题-清辉PMP

    1.供应商通知项目经理可能延迟交付一个模块.项目经理应该怎么做? A.立即通知相关方. B.通过增加额外的天数来修改项目管理计划,并记录它们对项目时间的影响. C.审查风险管理计划以评估风险,然后通知 ...

  2. Linux 系统挂载 ntfs 移动硬盘无法写入的问题

    linux 下挂载 ntfs 移动硬盘无法写入问题 在机房使用移动硬盘时发现无法写入硬盘,具体是 Ubuntu 21.04 ,移动硬盘是 SSD ,分区类型是 NTFS . 首先百度得知最优办法是安装 ...

  3. Android studio学习第二期

    layout目录下app页面布局文件 activity_main.xml的创建和跳转 activity为一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务 创建步骤 这里选择第二个xml ...

  4. [2002年NOIP提高组] 均分纸牌

    有 N 堆纸牌,编号分别为 1,2,-, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动.移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编 ...

  5. IDEA导出带源码的war包

    做作业时实验要求导出带源码的war包,网上找了一圈没找着,遂自行探索,摸出了些门道,在此分享. File->Project Structure->Project Setting->A ...

  6. Delphi中var和out

    var: 传递的是参数的地址 out: 以返回值的形式返回结果,类似函数的效果:可以实现一个函数返回多个值

  7. UNIT TWO

    声明 基于8086的寄存器共14个16位的,分别是 ax  bx  cx  dx  (通用寄存器) si  di  bp  sp    (基址与变址寄存器) cs  ss  ds  es   (段寄存 ...

  8. C语言ll一作业01

    1. 作业头 | 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-3 | | ---- | ---- | ---- | | 这个作业目 ...

  9. withRouter

    withRouter 可以加工一般组件,让一般组件具备路由组件所特有的api,比如this.props.history withRouter的返回值是一个新组件 import {withRouter} ...

  10. 用python提取txt文件中的特定信息并写入Excel

    这个是用 excel里面的 去掉空格最后导出的一个list: 原本是有空格的 后面是抵消了中间的空格. 然后 这里侧重说一下什么是split()函数 语法:str.split(str="&q ...