C++——虚函数

C++——虚函数

virtual关键字

在C++中, virtual 和 override 关键字用于支持多态,尤其是在涉及类继承和方法重写的情况下。正确地理解和使用这两个关键字对于编写可维护和易于理解的面向对象代码至关重要。

virtual关键字

1.使用场景:在基类中声明虚函数。

  1. 目的:允许派生类重写该函数,实现多态。

  2. 行为:当通过基类的指针或引用调用一个虚函数时,调用的是对象实际类型的函数版本。

  3. 示例

class Base {
    public:
    virtual void func() {
        std::cout << "Function in Base" << std::endl;
    }
};

override 关键字

  1. 使用场景:在派生类中重写虚函数。

  2. 目的:明确指示函数意图重写基类的虚函数。

  3. 行为:确保派生类的函数确实重写了基类中的一个虚函数。如果没有匹配的虚函数,编译器会报错。

  4. 示例

class Derived : public Base {
    public:
    void func() override {
        std::cout << "Function in Derived" << std::endl;
    }
};

例程

#include <iostream>

using namespace std;

class Vehicle{ //交通工具,车,抽象的概念
public:
    string coutry;
    double price;

    Vehicle()
    {

    }
    virtual ~Vehicle(){};
    Vehicle(string coutry,double price)
    {
        cout<<"基类构造函数被调用"<<endl;
        this->coutry=coutry;
        this->price=price;
    };

    //基类中声明了一个虚函数
    virtual void run(){
        cout << "车跑起来了" << endl;
    }
    void stop();
};

class Bike:public Vehicle
{
public:
    void run() override
    {
       cout<<"脚踩自行车"<<endl;
    }
};

int main()
{
    Bike b;
    b.run();
    return 0;
}

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值