21xrx.com
2024-09-20 00:26:42 Friday
登录
文章检索 我的文章 写文章
C++中的多态性概念及实现方法简介
2023-06-27 03:05:31 深夜i     --     --
多态性 C++ 概念 实现方法 简介

C++是一种广泛使用的编程语言,其具有很多特性,其中就包括多态性。多态性(Polymorphism)是指同一种操作或函数可以有不同的实现方式,具体实现方法如下。

一、继承实现多态性:通过把公共的方法定义在基类中,然后在派生类中重写(override)这些方法,从而实现多态性。例如:


class Animal {

public:

  virtual void speak()

    std::cout << "I am an animal." << std::endl;

  

};

class Dog : public Animal {

public:

  void speak() override

    std::cout << "I am a dog." << std::endl;

  

};

在这个例子中,Animal类是一个抽象类,它有一个虚函数speak()。Dog类继承自Animal类并覆盖了speak()。在程序中,使用指向Animal对象的指针调用对象的speak()函数,将调用派生类的函数。


Animal *a = new Dog();

a->speak(); // 输出"I am a dog."

二、接口实现多态性:接口就像是一张合同,在该合同中规定了子类必须实现的一些方法。例如:


class Shape {

public:

  virtual double area() = 0;

};

class Circle : public Shape {

public:

  double area() override {

    return M_PI * r * r;

  }

private:

  double r;

};

在这个例子中,Shape类是一个抽象类,其中的area()函数必须在子类中被实现。Circle类实现了Shape接口而且实现了area()函数。在程序中使用指向Shape对象的指针来调用派生类的area():


Shape *s = new Circle();

std::cout << "The area of circle is: " << s->area() << std::endl;

在C++中,多态性是通过基类指针或引用调用虚函数的形式进行实现的。这项特性使得程序编写更加灵活,便于拓展和维护。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复