首页 > 其他分享 >继承与派生

继承与派生

时间:2024-05-23 22:30:36浏览次数:12  
标签:const 派生 继承 double point int return public

  定义一个point类,派生Rectangle类和Circle类,计算各派生类对象的面积Area().

#include<iostream> 
using namespace std;
class point
{
    protected:
        double x;
        double y;
        public:
            point(double X,double Y):x(X),y(Y)
            {            }
            double getX() const
            {
                 return x;              
            }
            double getY() const
            {
                return y; 
            }    
};
class Rectangle:public point 
{
        protected:
        double longth;
        double width;
        public:
            Rectangle(double X,double Y,double l,double w):point(X,Y),longth(l),width(w){
            }
            double getArea() const
            {
                return longth*width;
            }
};
class Circle:public point
{
    protected:
        double r;
        public:
            Circle(double X,double Y,double R):point(X,Y),r(R){
            }
            double getArea() const
            {
                return (3.14159*r*r);
            }        
};
int main()
{Rectangle A(0,0,5,2);
Circle B(0,0,2);
cout<<"Rectangle area"<<A.getArea()<<endl;
cout<<"Circle area"<<B.getArea()<<endl;
return 0;

设计一个建筑物类Building,由它派生出教学楼TeachBuilding和宿舍楼类DormBuilding,前者包括教学楼编号,层数,教室数,总面积等基本信息,后者包括宿舍楼编号,层数,宿舍数,总面积和容纳学生总人数等基本信息。

 

 1 #include<iostream>
 2 using namespace std;
 3 class Building
 4 {
 5     protected:
 6         int number;
 7         int floor;
 8         double area;
 9         public:
10             Building(int N,int F,double A):number(N),floor(F),area(A){                
11             }
12             int getnumber() const{
13             return number;}
14             int getfloor() const{
15             return floor;}
16             double getarea() const{
17             return area;}
18 };
19 class TeachBuilding:public Building{
20     private:
21         int classroom;
22         public:
23         TeachBuilding(int N,int F,double A,int R):Building(N,F,A),classroom(R){
24 
25         }
26         int grtclassroom() const{
27         return classroom;}    
28 };
29 class DormBuilding:public Building{
30     private:
31     int dorm;
32     int student;
33     public:
34       DormBuilding(int N,int F,double A,int D,int S):Building(N,F,A),dorm(D),student(S){
35       }
36       int getdorm() const{
37       return  dorm;}
38       int getstudent()const{
39       return student;}
40 };
41 int main()
42 {
43     TeachBuilding O(1,4,34,600);
44     DormBuilding E(2,5,23,400,64);
45     cout<<"TeachBuilding number="<<O.getnumber()<<" floor="<<O.getfloor()<<" classroom="<<O.grtclassroom()<<" area="<<O.getarea()<<endl;
46     cout<<"DormBuilding number="<<E.getnumber()<<" floor="<<E.getfloor()<<" dorm="<<E.getdorm()<<" area="<<E.getarea()<<" student="<<E.getstudent()<<endl;
47     return 0;
48 }

 

标签:const,派生,继承,double,point,int,return,public
From: https://www.cnblogs.com/LCGJ/p/18183572

相关文章

  • Qt线程使用方法二:派生QThread
    在Qt中,从QThread派生一个子类并在构造函数中传入需要执行的方法,然后在线程中运行该方法并通知执行结果,是一种常见的多线程处理模式。以下是如何实现这一功能的步骤和示例代码: 步骤 1: 定义线程类 首先,定义一个从QThread派生的线程类。在这个类中,你可以定义一个函数指针或者......
  • Java中继承与接口的区别(浅谈)
    在Java中,继承和接口是两种不同的方式来实现代码的复用和扩展。以下是它们之间的主要区别:1.继承:继承是面向对象编程中的一种方式,允许一个类继承另一个类的属性和方法。继承的主要目的是为了实现代码的复用,即子类可以继承父类的属性和方法,从而避免重复编写相同的代码。此外,继......
  • 多边形周长计算(继承)
    给出下面的多边形基类框架:classpolygon{protected:intnumber;//边数,最多不超过100条边private:intside_length[100];//边长数组public:polygon();//构造函数根据需要重载intperimeter();//计算多边形边长voiddisplay();//输出多边形边数和周长......
  • 继承
    概念及定义继承机制是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。#include<iostream>usingnamespacestd;#include<string>classPerson{public: voidPrint(){ cout<<"name:"<<_......
  • c++菱形继承、多态与类内存模型
    目录1.菱形继承1.1.菱形继承的问题1.2.解决办法2.虚函数与多态2.1.普通函数不能实现多态2.2.虚函数(子类重写)+父类指向子类——实现多态2.3.多态原理3.c++内存模型4.参考1.菱形继承先看下面的例子,SheepTuo同时继承了Sheep和Tuo,而他们同时继承Animal类#include<iostream>usin......
  • C++继承
    继承通过继承机制可以实现对代码的拓展以及重用,而不用通过复制粘贴的方式来实现重用继承语法:ClassB:publicA{...}; public是公用继承用的最多,B是子类(派生类),A是父类(基类)子类可以访问从父类被public修饰的成员变量和函数,以及一些新增加的函数和变量,子类不能直接访问父......
  • C++:private继承
    平时我们使用类继承是这个画风:classchild:public::father{};表示子类child继承父类father,这里有个关键词"public",表示继承到的父类属性和方法为自己的public成员,这种情况下子类的对象或者说实例化是可以直接访问这些成员的 当改成classchild:private::father{};则......
  • JavaScript 原型链与继承问答(第一天)
    1、在编程语言中,什么叫语法糖在编程语言中,"语法糖"是指一种编程语言的语法功能,它并不改变语言的功能,但可以让代码更易读、更易写。它是一种语法上的简化,让程序员能够用更少的代码表达相同的逻辑。比如es6中,一个对象想复用另外一个对象的所有字段,可以这样constobj2={...obj......
  • C++ 类的继承(Inheritance)
    一、继承(Inheritance)C++有一个很好的性质称为inheritance(继承),就是声明一个class(derivedclass),把另一个或多个class(baseclass)的所有内容(包括datamembers和memberfunction)统统继承下来(有无存取权限是另一回事)。如果直接继承自一个baseclass,称为单一继承;如果直接继承自一......
  • C/C++ 泛型 -- 继承与多态
    【1】继承与多态-- 多态在模板中的应用#include<iostream>usingnamespacestd;namespace_nmsp1{//多态//人类classHuman{public:virtualvoideat(){cout<<"人类以吃米饭和面食为主!"<<endl;......