采取这个简单的代码:
class A{
public:
virtual void foo() = 0;
void x(){ foo(); }
};
class B: public A{ foo(){ ... } };
main(){
B b;
b.x();
}
我想要的是构建一个抽象类,该类将具有一个函数,该函数将调用一个期望它在派生类中实现的函数
问题是我似乎无法让它工作,编译器说它无法编译,因为它找不到要在 x() 中执行的 foo() 的引用(或类似的东西)基类。这能行吗?谁能给我一个例子?
编辑:似乎它只是在“foo();”时不起作用 在 A 类(基础)的析构函数中......
这让我很困惑。=[
EDIT2:这有多有趣。我刚刚创建了一个 callfoo(){ foo(); 现在它编译好了,但是如果我尝试直接从基类 A 的析构函数中调用纯抽象函数,它会给我错误......很奇怪。有人对此有任何想法吗?o_o
请问有什么帮助吗?
谢谢,
乔纳森
更新
它在析构函数之外工作。现在我只是感到困惑。
尝试将“foo()”放在 A(base) 类的析构函数中,至少对我来说不是编译...
有什么帮助吗?