我有多个从接口(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/