点类派生出圆类,圆类派生出圆柱类

#include <iostream>
#include <stdlib.h>
using namespace std;
const double PI=3.14159;

//基类的定义
class Point
{
private:
int x,y;
public:
Point(int xx,int yy)
{
x=xx;
y=yy;
}
int Getx()
{
return x;
}
int Gety()
{
return y;
}
/*
void show()
{
cout<<x<<","<<y<<endl;
}
*/
friend ostream &operator<<(ostream &,const Point &);
};
ostream &operator<<(ostream &show,const Point &p)
{
show<<"("<<p.x<<","<<p.y<<")"<<endl;
return show;
}

//定义子类“圆”,公共的继承
class Circle:public Point
{
protected:
int r;
public:
Circle(int xx,int yy,int rr):Point(xx,yy)
{
r=rr;
}
int Getr()
{
return r;
}
double circumferen() const
{
return 2*PI*r;
}
double area()
{
return PI*r*r;
}
friend ostream &operator<<(ostream &,const &);
};

ostream &operator<<(ostream &show.const Point &p)
{
show<<"("<<c.x<<","<<c.y<<")",半径"<<c.r<<",周长:"<<
c.circmferen()<<"面积:"<<c.area()<<endl;
return show;
}
class Cylinder:public Circle
{
private:
int h;
public:
Cylinder(int xx=0,int yy=0,int rr=0,int hh=0):Circle(xx,yy,rr)
{
h=hh;
}
int Geth()
{
return h;
}
double Cy_area() const
{
return 2*Circle::area()+2*PI*r*h;
}
double volume()
{
return Circle::area()*h;
}
friend ostream &operator<<(ostream &,const Point &);
};
ostream &operator<<(ostream &show.const Point &cy)
{
show<<"("<<cy.x<<","<<cy.y<<")",半径"<<cy.r<<",表面积:"<<cy.Cy_area()
<<"体积:"<<cy.volume()<<endl;
return show;
}

int main()
{
Point objP(3,5);
// cout<<"点类的对象:"<<objP;
cout<<"横坐标的值:"<<objP.Getx()<<" ";
cout<<"纵坐标的值:"<<objP.Gety()<<endl;

Circle objC(3,5,9);
// cout<<"圆类的对象:"<<objC;
cout<<"圆的半径:"<<objC.Getr()<<endl;
cout<<"圆的周长:"<<objC.circumferen()<<end;;
cout<<"圆的面积:"<<objC.area()<<endl;

Cylinder objCy(3,5,9,12);
// cout<<"圆柱类的对象:"<<objCy;
cout<<"圆柱的表面积:"<<objCy.Cy_area()<<end;;
cout<<"圆柱的体积:"<<objC.volume()<<endl;

return 1;
}

原文地址:https://www.cnblogs.com/duanqibo/p/11110349.html

时间: 2024-10-25 19:41:18

点类派生出圆类,圆类派生出圆柱类的相关文章

C++ 走向远洋——44(项目一、点—圆—圆柱类族的设计、派生类)

*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年5月8日 * 版本号:V1.0 * 问题描述:类的派生 * 程序输入:无 * 程序输出:见运行结果 */ #include <iostream> // 点类的实现 using namespace std; class Point { public: Point(do

第10周项目 - 点-圆-圆柱类族的设计

/*Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:my.cpp *作 者: *完成日期:2016年5月8日 * *问题描述:按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为基类,派生出一个Circle(圆)类,增加数

第十、十一周项目1 - 点-圆-圆柱类族的设计(2)

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 徐聪 *完成日期 : 2016年5月9号 *版 本 号 : v1.0 *问题描述:以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: */ #include<iostream> #include<cmath> using namespace

点-圆-圆柱类族的设计

/* Copyright (c) 2016* All rights reserved 烟台大学计算机与控制工程学院 * 文件名称:3.cpp * 作者:刘丽 * 完成日期:2016年 4 月 28日 * 版本号: v1.0 * *[项目 - 点-圆-圆柱类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试

第十一周【项目1 - 点-圆-圆柱类族的设计2】

/* *Copyright(c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:张珩瑞 *完成日期:2016年5月2日 *版本号:v1.0 * *问题描述:以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area, 实现其他需要的成员函数,设计main函数完成测试: *输入描述:无 *输出描述:按要求输出 */ #include<iostream> #include&

第11周项目1——点、圆、圆柱类的设计

<pre class="html" name="code"> /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 刘云 *完成日期 : 2016年5月8号 *版 本 号 : v6.0 * *问题描述 : 点.圆.圆柱类的设计 *输入描述 : 无 *程序输出 : */ /**************************************************

基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------&gt; 可以返回派生类对象的引用或指针

您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 http://bbs.csdn.net/topics/380238133 的作者无关,不对其内容负责.百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面. 首页 精选版块 移动开发 iOS Android Qt WP 云计算 IaaS Pass/SaaS 分布式计算/Hadoop J

对【面向对象的类访问和对象访问的区别【this以及类访问】、静态成员的访问区别、类常量等、继承和重写、访问修饰限定符、冒泡排序】的总结

面向对象的总结1.首先面向对象的编程使用的都是使用对象作为处理对象而言[例如继承等情形,继承的本质来说,依旧针对的是对象]但是只有针对类的访问.静态成员以及访问修饰限定符时,针对的是类的概念 2.类内定义时,只有五种情形:类常量[const关键字定义并且使用类来调用]属性[这些属性和方法是针对该类实例的对象来调用]方法[在这种情形下使用$this进行指代作用环境(调用该方法的对象),只有继承中,子类实例的对象会向下传递到静态调用里]静态属性[用来作为实例该类的所有对象之间共享的数据.保存在类中]

C++ Primer 学习笔记_20_类与数据抽象(6)_深拷贝与浅拷贝、空类与空数组

C++ Primer 学习笔记_20_类与数据抽象(6)_深拷贝与浅拷贝.空类与空数组 一.深拷贝与浅拷贝 浅拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换而言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象. 深拷贝:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量.那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象.换而言之,深拷贝把要复制的对象所引用的对象都复制了一遍. 浅拷贝可