Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ 多态

作者:飒舛流寒   发布日期:2025-02-22   浏览:112

#include <iostream>
using namespace std;

// 定义一个基类
class Animal {
public:
    // 虚函数,用于多态
    virtual void makeSound() const {
        cout << "Some animal makes a sound" << endl;
    }
};

// 派生类1
class Dog : public Animal {
public:
    void makeSound() const override {
        cout << "Dog barks" << endl;
    }
};

// 派生类2
class Cat : public Animal {
public:
    void makeSound() const override {
        cout << "Cat meows" << endl;
    }
};

int main() {
    Animal* myAnimal = new Animal();  // 基类对象
    Animal* myDog = new Dog();        // 派生类对象
    Animal* myCat = new Cat();        // 派生类对象

    // 多态调用
    myAnimal->makeSound();
    myDog->makeSound();
    myCat->makeSound();

    // 释放内存
    delete myAnimal;
    delete myDog;
    delete myCat;

    return 0;
}

解释说明:

  1. 基类 Animal:定义了一个虚函数 makeSound(),该函数在派生类中可以被重写。
  2. 派生类 DogCat:分别重写了基类的 makeSound() 函数,实现了不同的行为。
  3. 多态调用:通过基类指针调用虚函数时,实际调用的是派生类中重写的版本,而不是基类中的版本。这体现了 C++ 的多态特性。
  4. 内存管理:使用 new 分配的对象需要使用 delete 释放,以避免内存泄漏。

上一篇:菜鸟c++

下一篇:c++编程代码

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站