学习记录--C++继承与派生编程题
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++继承与派生编程题的更多相关文章
- 程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1
描述 写一个MyString 类,使得下面程序的输出结果是: 1. abcd-efgh-abcd- 2. abcd- 3. 4. abcd-efgh- 5. efgh- 6. c 7. abcd- 8 ...
- C++学习之路—继承与派生(一):基本概念与基类成员的访问属性
(本文根据<c++程序设计>(谭浩强)总结而成,整理者:华科小涛@http://www.cnblogs.com/hust-ghtao,转载请注明) 1 基本思想与概念 在传统的程序设计 ...
- buu学习记录(下)(做题是不可能做题的)
目录: easy_calc 禁止套娃 EasyWeb Babysqli Easyweb easy_serialize_php 我有一个数据库 SSRFme 枯燥的抽奖 EasyPHP 题目解析: ea ...
- 【C++学习笔记】继承与派生基础概念
面向对象的程序设计主要有四个特点:抽象.封装.继承和多态.其中继承是我认为最最重要的一个特性,可以说继承是面向对象的精华所在. 举一个继承的浅显易懂的例子:假如我们已经有了一个“马”的类,其中成员变量 ...
- C++学习之路—继承与派生(四)拓展与总结
(根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 1 拓展部分 本节主要由两部分内容组成,分 ...
- C++学习之路—继承与派生(三):多重继承与虚基类
(根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 多重继承是指一个派生类有两个或多个基类.例如,有 ...
- C++学习之路—继承与派生(二):派生类的构造函数与析构函数
(根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 由于基类的构造函数和析构函数是不能被继承的,所以 ...
- java学习记录笔记--继承,super,Object类
继承: Java中的继承是单继承的. 1.子类拥有父类的全部属性和方法. 可是属性和方法的修饰符不能使private. 2.能够复用父类的代码. 方法的重写须要满足的条件: a.返回值类型 b.方法名 ...
- python核心编程学习记录之函数与函数式编程
@func function 意思是func(function) @func(a) function 意思是func(a)这是个函数对象,在去调用function函数 如果要传额外的值,只传值用*tu ...
- POJ C++程序设计 编程题#1 编程作业—继承与派生
编程题#1 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 写一个MyStr ...
随机推荐
- ADOConnection调用连接窗口
uses AdoConEd; 使用函数 1.EditConnectionString(ADOConnection); 2.PromptDataSource
- 一种基于Modbus的工业通信网关设计
近年来,随着工业自动化领域的发展,工业现场对网络的可靠性及成本有极高的要求.传统基于串口的工业网关可以满足工业现场的应用,但却要付出高额成本.一种基于 ModBus 设计的工业通信网关就走进人们的眼中 ...
- 第08组Beta冲刺(2/4)
队名 八组评分了吗 组长博客链接(2分) 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 12月9号了解各个小组的进度与难以攻破的地方,晚上安排开会,安排新的冲刺任务. 重新分配小组及个 ...
- Java中的super和this关键字——
super与this关键字 先总结再解释: super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类. this关键字:指向自己的引用. super注意点: 1.s ...
- java为什么要使用静态内部类
参考:https://blog.csdn.net/fengyuyeguirenenen/article/details/122696650 static内部类意味着: (1) 为创建一个static内 ...
- 【alive-progress】Python控制台输出动态进度条
简介 alive-progress是一种具有实时吞吐量和非常酷的动画新型的进度条python库. 使用 from alive_progress import alive_bar import time ...
- Tacotron2论文阅读笔记
Tacotron2 NATURAL TTS SYNTHESIS BY CONDITIONING WAVENET ON MEL SPECTROGRAM PREDICTIONS论文阅读笔记 先推荐一篇比较 ...
- 未知:长度为 K 的重复字符子串
给你一个由小写字母组成的长度为n的字符串 S ,找出所有长度为 k 且包含重复字符的子串,请你返回全部满足要求的子串的数目. 数据范围: , 进阶: 时间复杂度,空间复杂度 输入例子1: &qu ...
- 消息队列 RocketMQ4.x介绍和新概念讲解
消息队列 RocketMQ4.x介绍和新概念讲解 Apache RocketMQ作为阿里开源的一款高性能.高吞吐量的分布式消息中间件 RocketMQ4.x特点 支持Broker和Consumer端消 ...
- python中的变量定义
1 变量名:由下划线.字母和数字组成 2 python中变量名的特殊含义: xx:标准的标识符,共有的 _xx:只是在from - import *时是不会被导入的,其他导入方式会被引入 隐藏变量还有 ...