sdut 5-1 继承和派生
5-1 继承与派生
Time Limit: 1000MS Memory limit: 65536K
题目描写叙述
通过本题目的练习能够掌握继承与派生的概念。派生类的定义和用法。当中派生类构造函数的定义是重点。
要求定义一个基类Point,它有两个私有的float型数据成员X,Y;一个构造函数用于对数据成员初始化;有一个成员函数void
Move(float xOff, float yOff)实现分别对X,Y值的改变,当中參数xOff和yOff分别代表偏移量。
另外两个成员函数GetX() 、GetY()分别返回X和Y的值。
Rectangle类是基类Point的公有派生类。
它添加了两个float型的私有数据成员W,H; 添加了两个成员函数float
GetH() 、float GetW()分别返回W和H的值;并定义了自己的构造函数。实现对各个数据成员的初始化。
编写主函数main()依据下面的输入输出提示,完毕整个程序。
输入
6个float型的数据。分别代表矩形的横坐标X、纵坐标Y、宽度W,高度H、横向偏移量的值、纵向偏移量的值;每一个数据之间用一个空格间隔
输出
输出数据共同拥有4个,每一个数据之间用一个空格间隔。
分别代表偏移以后的矩形的横坐标X、纵坐标Y、宽度W,高度H的值
演示样例输入
5 6 2 3 1 2
演示样例输出
6 8 2 3
提示
输出 -3 4 0 0
来源
#include <iostream> using namespace std; class Point //声明Point类
{
private :
float x, y; public :
Point (float x1=0, float y1=0): x(x1), y(y1) {};//定义构造函数
void Move(float xoff, float yoff);//声明move函数
float Getx() const {return x;}//定义成员函数Getx
float Gety() const{return y;}//定义成员函数Gety
}; void Point :: Move(float xoff, float yoff)//定义Move 函数
{
x = x + xoff;
y = y + yoff;
} class Rectangle : public Point//定义Rectangle类
{
private :
float w, h; public :
Rectangle(float x1, float y1, float w1, float h);//声明Rectangle函数
float Getw() const{return w;}
float Geth() const{return h;}
}; Rectangle :: Rectangle(float x1, float y1, float w1, float h1) : Point(x1, y1)//定义Rectangle函数
{
w=w1 >= 0 ? w1:0 ;
h=h1 >= 0 ? h1:0 ;
} int main()//主函数
{
float x, y, w, h, xoff, yoff;
cin>>x>>y>>w>>h>>xoff>>yoff;
Point p1(x, y);
Rectangle r1(x, y, w, h);
p1.Move(xoff, yoff);
cout <<p1.Getx()<<" "<<p1.Gety()<<" "<<r1.Getw()<<" "<<r1.Geth()<< endl;
return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
sdut 5-1 继承和派生的更多相关文章
- c++学习--继承与派生
继承和派生 1 含有对象成员(子对象)的派生类的构造函数,定义派生类对象成员时,构造函数的执行顺序如下: 1 调用基类的构造函数,对基类数据成员初始化: 2 调用对象成员的构造函数,对对象成员的数据成 ...
- 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)
[源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...
- [C++]类的继承与派生
继承性是面向对象程序设计的第二大特性,它允许在既有类的基础上创建新类,新类可以继承既有类的数据成员和成员函数,可以添加自己特有的数据成员和成员函数,还可以对既有类中的成员函数重新定义.利用类的继承和派 ...
- O-c中类的继承与派生的概念
什么是继承 众所周知,面向对象的编程语言具有: 抽象性, 封装性, 继承性, 以及多态性 的特征. 那么什么是继承呢? 传统意义上是指从父辈那里获得父辈留下的东西 在开发中, 继承就是"复用 ...
- 程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1
描述 写一个MyString 类,使得下面程序的输出结果是: 1. abcd-efgh-abcd- 2. abcd- 3. 4. abcd-efgh- 5. efgh- 6. c 7. abcd- 8 ...
- 走进C++程序世界------继承和派生
继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序.下面是在其他博客中的总结: ****************************** ...
- C++学习之路—继承与派生(一):基本概念与基类成员的访问属性
(本文根据<c++程序设计>(谭浩强)总结而成,整理者:华科小涛@http://www.cnblogs.com/hust-ghtao,转载请注明) 1 基本思想与概念 在传统的程序设计 ...
- C/C++基础知识总结——继承与派生
1. 类的继承与派生 1.1 派生类的定义 (1) 定义规范 class 派生类名: 继承方式 基类1名, 继承方式 基类2名... { ...派生类成员声明; }; (2) 从以上形式上看可以多继承 ...
- python基础——继承与派生、组合
python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...
随机推荐
- Mongodb in Mycat指南
1 前言 Mycat目前支持JDBC连接后端数据库,理论上支持任何数据库,如ORACLE.DB2.SQL Server等,是将其模拟为MySQL,所以对其他数据库只支持标准的SQL语句,而 ...
- 【record】9.24..10.1
因为参加比赛所以做得比较少了
- 9个完整android开源app项目
一.photoup 介绍: photoup 是一款开源的相册类app,主要功能是将本地图片提交到facebook上去,虽然他的功能和facebook的远程服务相关,但是本身是可以被当作一款 相册应用的 ...
- Ajax基础与Json应用(二)
九.jQuery 实现Ajax应用 1.使用load()方法异步请求数据 使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为: load(url, ...
- 【Dijkstra+邻接表求次短路】POJ Sightseeing 3463
Language: Default Sightseeing Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7766 Ac ...
- java使用mongoDB和freemarker注意事项
mongoDB和关系数据库的差异最大的优势就是表结构不正确,说:.弱事务.mongoDB以牺牲换来的交易进行更快的访问速度,有人说mongoDB对于内存太贪婪,事实上,它不会.随着windows版本, ...
- HDU 4352 XHXJ's LIS - 状压dp + LIS
传送门 题目大意: 求[l, r]中数位的最长上升序列恰好为k的数的个数. 题目分析: 首先要理解\(o(nlogn)\)求LIS问题的思路,每次寻找第一个大于等于的数将其更改. 设dp[pos][s ...
- radio实现第一次点击选中第二次点击取消
Jquery代码如下: $("#add_form .radio input").bind("click",function(){ var $radio = $( ...
- 【t006】三角形分形描绘问题
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 分形是以多种概念和方法相互冲击融合为特征的图形.分形所呈现的无穷玄机和美感引发人们去探索.分形使人们觉悟 ...
- Enhancing network controls in mandatory access control computing environments
A Mandatory Access Control (MAC) aware firewall includes an extended rule set for MAC attributes, su ...