21xrx.com
2024-11-10 00:36:47 Sunday
登录
文章检索 我的文章 写文章
C++中多态的例子
2023-07-05 01:22:54 深夜i     --     --
C++ 多态 例子

C++是广泛应用于软件开发和计算机科学领域的一种编程语言。在C++中,多态是常用的编程概念。多态是指对不同的对象进行相同的操作时,能够产生不同的行为。下面介绍几个C++中的多态实例。

1.虚函数

虚函数是C++中的重要概念,通过使用虚函数可以实现运行时多态。在虚函数的声明前面加上virtual关键字,就可以将该函数声明为虚函数。例如:

class Shape {

public:

  virtual void draw()

    //定义一个虚函数

};

在这个例子中,Shape类有一个名为draw()的虚函数,其他继承Shape类的派生类都可以定义自己的draw()函数并覆盖掉父类的该函数。当通过基类指针或引用来调用该函数时,将会使用正确的派生类中的函数。

2.动态绑定

动态绑定又称运行时绑定,是指根据具体的对象来确定调用哪个函数。C++中的动态绑定也是通过虚函数实现的。例如:

class Animal {

public:

  virtual void makeNoise()

    cout << "Animal is making noise" << endl;

};

class Dog : public Animal {

public:

  void makeNoise() override

    cout << "Dog is barking" << endl;

};

class Cat : public Animal {

public:

  void makeNoise() override

    cout << "Cat is meowing" << endl;

};

在这个例子中,有一个Animal类和它的两个子类Dog和Cat。在子类中,都覆盖了makeNoise()函数。当使用基类指针或引用调用makeNoise()函数时,根据具体的对象动态绑定到不同的函数。例如:

Animal *a;

a = new Dog;

a->makeNoise(); //输出“Dog is barking”

a = new Cat;

a->makeNoise(); //输出“Cat is meowing”

3.纯虚函数

纯虚函数是一种特殊的虚函数,只有函数的声明而没有函数的定义。纯虚函数可以在父类中定义,但是必须在子类中重定义。例如:

class Shape {

public:

  virtual void draw() = 0; //定义一个纯虚函数

};

在这个例子中,Shape类的draw()函数声明为纯虚函数。任何继承Shape的子类都必须重定义该函数。

通过以上几个例子,我们可以看出C++中多态的实现方式有很多,用起来也非常方便,可以使代码更简洁,并且使程序更容易扩展和维护。

  
  

评论区

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