为纯虚函数提供定义

2、为纯虚函数提供定义
1、合法:为纯虚函数提供实现是合法的,目的是为派生类提供默认逻辑。派生类可以选择重写或不重写这个函数。
2、提供保底行为:这种写法在需要提供保底行为的接口设计或减少重复代码的场景中可能非常有用。

struct A { virtual void fun() = 0; };
void A::fun() { cout << "test" << endl; }
虽然这种写法并不常见,但是在C++中是合法的,子类实例化后可以提供默认的行为,

#include <iostream>
using namespace std;

struct A {
virtual void fun() = 0; // 纯虚函数
};

void A::fun() {
cout << "Base implementation" << endl;
}

struct B : public A {
// 使用基类提供的实现
void fun() override { A::fun();}
};

int main() {
A* obj = new B(); // 创建派生类的实例
obj->fun(); // 调用基类的实现,输出:Base implementation
delete obj;
return 0;
}

posted @   mars0521  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示