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

c++ virtual

作者:角落里哭泣   发布日期:2025-10-09   浏览:101

#include <iostream>

// 定义一个基类
class Base {
public:
    // 虚函数,派生类可以重写这个函数
    virtual void show() {
        std::cout << "Base class show function" << std::endl;
    }

    // 析构函数也应该是虚函数,以确保派生类的析构函数被正确调用
    virtual ~Base() {}
};

// 定义一个派生类
class Derived : public Base {
public:
    // 重写基类的虚函数
    void show() override {
        std::cout << "Derived class show function" << std::endl;
    }
};

int main() {
    Base* basePtr;

    Base baseObj;
    Derived derivedObj;

    basePtr = &baseObj;
    basePtr->show();  // 调用 Base 类的 show 函数

    basePtr = &derivedObj;
    basePtr->show();  // 调用 Derived 类的 show 函数

    return 0;
}

解释说明:

  1. 虚函数 (virtual):在基类中声明为 virtual 的函数可以在派生类中被重写。这样,通过基类指针或引用来调用该函数时,会根据实际对象的类型来决定调用哪个版本的函数。
  2. 虚析构函数:为了确保派生类的析构函数在删除基类指针时被正确调用,基类的析构函数应该声明为 virtual
  3. override 关键字:用于明确表示派生类中的函数是重写基类中的虚函数。如果基类中没有相应的虚函数,则编译器会报错。这有助于避免拼写错误或其他问题导致的意外行为。

这段代码展示了如何使用虚函数实现多态性,并确保派生类的行为可以通过基类指针正确调用。

上一篇:c++ string substr

下一篇:c++sort

大家都在看

c++闭包

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

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

队列c++

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

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

Laravel 中文站