【发布时间】:2015-06-18 03:44:11
【问题描述】:
在下面的示例中,我有一个带有纯虚方法(又名 FUN1)和普通方法(又名 FUN2)的抽象类。
#include <iostream>
class A
{
public:
virtual void fun(int i) = 0; // FUN1
void fun() { this->fun(123); } // FUN2
};
class B : public A
{
public:
virtual void fun(int i) { std::cerr << i << std::endl; }
};
int main(int,char**)
{
B b;
b.fun();
}
为什么我不能在派生类上调用 FUN2? g++ 报错:
main.cpp:19:8: 错误:没有匹配函数调用‘B::fun()’
编辑:注意Overload of pure virtual function 的问题是不同的。我不想覆盖方法。
【问题讨论】:
标签: c++ inheritance interface