21xrx.com
2024-12-22 21:54:58 Sunday
登录
文章检索 我的文章 写文章
C++中多态的实现方法
2023-07-10 18:24:13 深夜i     --     --
C++ 多态 实现方法 虚函数 override

C++中多态是面向对象编程的一个重要概念,指的是不同类型的对象可以使用相同的接口来执行不同的方法。C++中实现多态的方法有两种:虚函数和模板。

1. 虚函数

在基类中定义虚函数,派生类可以重写该函数,实现不同的具体操作。在使用基类指针或引用指向派生类对象时,可以通过虚函数实现动态绑定,根据指针或引用指向的对象类型,调用相应的函数。

例如,定义一个Animal基类和两个派生类Cat和Dog:


class Animal {

public:

  virtual void say()

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

  

};

class Cat : public Animal{

public:

  void cry()

    cout << "Meow~" << endl;

  

  void say()

    cout << "I am a cat." << endl;

  

};

class Dog : public Animal{

public:

  void bark()

    cout << "Woof!" << endl;

  

  void say()

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

  

};

使用基类指针或引用指向派生类对象,实现多态:


Animal *pAnimal;

pAnimal = new Cat();

pAnimal->say(); //output: I am a cat.

pAnimal = new Dog();

pAnimal->say(); //output: I am a dog.

2. 模板

模板就是对数据类型进行参数化,实现代码的复用。通过模板,可以实现同一接口对不同类型的对象进行操作,从而实现多态。

例如,定义一个打印函数模板:


template<typename T>

void print(T value)

  cout << value << endl;

可以使用该模板打印不同类型的数据:


print<int>(10); //output: 10

print<string>("hello"); //output: hello

总的来说,C++中多态的实现方法有虚函数和模板两种,可以根据具体需求选择合适的方式实现。多态的使用可以提高代码的重用性和灵活性。

  
  

评论区

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