我有以下一段代码。
class A {
public:
virtual void foo() = 0;
}
class B : public A {
public:
void bar() { /* Do something */ }
}
void B::A::foo() {
bar();
// Do something else
}
当我尝试编译它时...我收到一条错误消息,提示它找不到 bar()
。这不是实例化纯虚函数的正确方法吗?
use of undeclared identifier 'bar'
最佳答案
void B::A::foo()
没有多大意义。看起来你的意思是在 B
中实现 foo()
,为此你需要在 B
的类声明中声明它,然后实现它:
class B : public A {
public:
void foo();
void bar() { /* Do something */ }
};
void B::foo() {
bar();
// Do something else
}
关于c++ - 虚函数的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667569/