首页 > 其他分享 >多态性

多态性

时间:2024-05-23 22:41:47浏览次数:14  
标签:showinfo area 多态性 vp shape double public

定义 一个shape抽象类,派生出rectangle类和circle类,计算各类派生类对象的面积area().

#include<iostream>
using namespace std;
class shape{
    public:
        virtual double area()=0;
        
};
class rectangle:public shape{
    public:
        rectangle(double w,double l):width(w),longth(l){
        }
        double area(){
            return (width*longth);
        }
private:
    double width;
    double longth;
};
class circle:public shape{
    public:
        circle(double r):R(r){
        
        }
        double area(){
            return (3.14159*R*R);
        }
private:
    double R;
};
int main()
{
    shape* shape1=new rectangle(4,7);
    shape* shape2=new circle(9);
    cout<<"长方形面积"<<shape1->area()<<endl;
    cout<<"圆形面积"<<shape2->area()<<endl;
    return 0;
}

  有一个交通工具类velicle,将它作为基类派生小车类car,卡车类truck和轮船类boat,定义这些类并定义一个虚函数用来显示各类信息。

 

 1 *#include<iostream>
 2 #include<string>
 3 using namespace std;
 4 class vehicle
 5 {
 6     public:
 7         string name;
 8         public:
 9             vehicle(string h):name(h){
10             }
11         virtual void showinfo() const{
12         cout<<name<<endl;
13     }
14 };
15 class Car: virtual public vehicle{
16     public:
17         double speed;
18         double fuel;
19         public:
20             Car(string h):vehicle(h),speed(200),fuel(14.8){
21             }
22     virtual    void showinfo() const {
23         cout<<name<<endl;
24         cout<<speed<<"km/h"<<endl;
25         cout<<fuel<<"l/100kkm"<<endl;}
26 };
27 class Truck:virtual public vehicle
28 {public:
29     double speed;
30     double fuel;
31     public:
32         Truck(string h):vehicle(h),speed(100),fuel(18.8){
33         }
34     virtual void showinfo() const {
35     cout<<name<<endl;
36     cout<<speed<<"km/h"<<endl;
37     cout<<fuel<<"l/100kkm"<<endl;    }
38 };
39 class Boat:virtual public vehicle
40 {
41     public:
42     double speed;
43     double fuel;
44     public:
45         Boat(string h):vehicle(h),speed(40),fuel(8.8){
46         }
47   virtual    void showinfo() const {
48     cout<<name<<endl;
49     cout<<speed<<"km/h"<<endl;
50     cout<<fuel<<"l/100kkm"<<endl;}
51 };
52 int main()
53 {
54     vehicle *vp;
55     string name0,name1,name2;
56     cin>>name0;
57     Car car(name0);
58     cin>>name1;
59     Truck truck(name1);
60     cin>>name2;
61     Boat boat(name2);
62     vp=&car;
63     vp->showinfo();
64     vp=&truck;
65     vp->showinfo();
66     vp=&boat;
67     vp->showinfo();
68     return 0;
69 }

 

标签:showinfo,area,多态性,vp,shape,double,public
From: https://www.cnblogs.com/LCGJ/p/18197174

相关文章

  • 2024 4 7 c++ 作业多态性
    1.多态性:抽象类和派生类(1)定义一个抽象类CShape(至少有一个函数被声明为纯虚函数);(2)再利用CShape分别定义两个派生类CRectangle(矩形)和CCircle(圆),三个类都有计算面积的成员函数GetArea()和计算对象周长的成员函数GetPerimeter();(3)在主函数中声明基类指针和派生类对......
  • 接口,多态性,深层和浅层副本,密封类和异常。
    C#接口遥控器是观众和电视之间的接口。它是此电子设备的接口。外交礼仪指导外交领域的所有活动。道路规则是驾车者,骑自行车者和行人必须遵守的规则。编程中的接口类似于前面的示例。接口是:APIsContracts对象通过其公开的方法与外界交互。实际的实现对程序员而言并不......
  • C++精品小案例:C++中的多态性及其实现、模板元编程及其在C++中的应用
    1.C++中的多态性及其实现多态性是面向对象编程的三大特性之一,它允许使用父类类型的指针或引用来指向子类对象,并通过这个父类类型的指针或引用来调用实际子类的成员函数。这样,就可以在运行时确定应该调用哪个具体的函数实现,从而实现一个接口多种形态。多态性主要通过虚函数来......
  • Java中的多态性:面向对象世界的关键特性
    引言:多态性是面向对象编程(OOP)的核心概念之一,它允许方法在不同对象中具有不同的表现形式。在Java中,多态性不仅提高了代码的灵活性和可扩展性,还使得程序设计更加简洁和优雅。本文将详细探讨Java中多态性的工作原理、实现方式以及它的应用场景。多态性的定义:多态性指的是同......
  • 多态性#java#面向对象
    多态性静态多态:也称为编译期间的多态,编译器在编译期间完成的,主要通过函数重载实现。编译器根据相同函数名的不同参数列表,可推断出要调用哪个函数。publicclassPerson{publicvoidsay(){System.out.println("我是第一个名为say的方法!");}publicvo......
  • C# 继承、多态性、抽象和接口详解:从入门到精通
    C#继承在C#中,可以将字段和方法从一个类继承到另一个类。我们将“继承概念”分为两类:派生类(子类)-从另一个类继承的类基类(父类)-被继承的类要从一个类继承,使用:符号。在以下示例中,Car类(子类)继承了Vehicle类(父类)的字段和方法:示例classVehicle//基类(父类){......
  • go接口多态性
    浅谈Golang接口:作用、应用场景及实际应用马哥Linux运维 2023-12-0418:42 发表于江苏引言:    Golang(Go)作为一门现代的静态类型编程语言,提供了许多强大的特性,其中之一便是接口(interface)。接口是Golang中的一个核心概念,它具有广泛的应用场景,可以帮助开发者实现代码的......
  • 四. 多态性和虚函数
    文章参考:《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)_白鳯的博客-CSDN博客1.多态性概述所谓多态性,就是不同对象接收不同消息时,产生不同的动作。这样就可以用相同的接口访问不同的函数,从而实现一个接口,多种方法。从实现方式上看,多态性分为两种:编译时多态:在C++......
  • 多态性
    多态性是指在父类中定义的属性和方法被子类继承后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或者方法在父类及其各个子类中具有不同的含义。多态性我们先来看一段代码和它的运行结果:#include<iostream>usingnamespacestd;classA{public:A():......
  • 多态和多态性
    什么是多态:一类事物的多种形态这是其中的体现比如:动物类:猪,狗,人多态基础classAni0mal:defspeak(self):passclassPig(Animal):defspeak(self):print('哼哼哼')classDog(Animal):defspeak(self):print('汪汪汪'......