gpt4 book ai didi

c++ - 从多个头文件中的接口(interface)声明重写函数时如何避免重复代码?

转载 作者:行者123 更新时间:2023-12-02 10:07:57 24 4
gpt4 key购买 nike

我有多个从接口(interface)继承的类。派生类的头文件几乎相等,因为每个都覆盖了所有纯虚函数:

struct IBase {
virtual void fooA() = 0;
virtual void fooB() = 0;
};

struct Derived1 : IBase {
void fooA() override;
void fooB() override;
};

struct Derived2 : IBase {
void fooA() override;
void fooB() override;
};

void Derived1::fooA() {
// implA1
}
void Derived1::fooB() {
// implB1
}

void Derived2::fooA() {
// implA2
}
void Derived2::fooB() {
// implB2
}

我能以某种方式避免复制粘贴 void fooA() override; void fooB() override;对于每个派生类?

最佳答案

无法避免复制粘贴 void fooA() override; void fooB() override;对于每个派生类,假设它们的实现确实不同(如您的评论 // implA1// implA2 所示),而不使用宏。

注意:如果 Derived1::fooA 的实现和 Derived2::fooA相同,则可以避免重复。

关于c++ - 从多个头文件中的接口(interface)声明重写函数时如何避免重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59251217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com