为纯虚函数提供定义
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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了