我有一个抽象图(A
在示例中)。它具有InnerA
用于其中一项功能的内部类。我想B
从这个类派生一个新类(例如)并制作一个包装器InnerA
以添加一个应该在B
.
class A {
public:
class InnerA {};
virtual void function(InnerA) = 0;
};
class B : public A {
public:
class InnerB : InnerA {
public:
int new_field = 0;
};
void function(InnerB b) override {
b.new_field = 1;
}
};
但是我收到一个无法覆盖基本功能的错误function
。B
实现这一点的正确方法是什么?
error: 'void B::function(B::InnerB)' marked 'override', but does not override
void function(InnerB b) override {
^~~~~~~~