可能重复:
在C++中覆盖基类的重载函数
我尝试像这样创建一个子类:
编译器(clang 1.0)生成错误:“调用函数的参数太少,期望1个,实际为0个。”我不明白为什么需要一个参数的虚拟函数会和非虚拟的const函数混淆。能否有人解释一下原因?
在C++中覆盖基类的重载函数
我有一个像这样的类:
class Object {
public:
int alignment() const;
virtual void alignment(int i);
};
我尝试像这样创建一个子类:
我尝试像这样创建一个子类:
class Sub : public Object {
public:
virtual void alignment(int i);
};
那么:
Sub *sub = new Sub();
sub->alignment(10);
int a = sub->alignment();
编译器(clang 1.0)生成错误:“调用函数的参数太少,期望1个,实际为0个。”我不明白为什么需要一个参数的虚拟函数会和非虚拟的const函数混淆。能否有人解释一下原因?