作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
<分区>
Base 和 Derived 定义如下:
class Base {
public:
virtual int f1(int a) const = 0;
virtual int f2(int a, int b) const { return a+b;}
};
class Derived : public Base {
public:
int f1(int a) const { return a; }
};
int main() {
Derived obj;
cout << obj.f1(1) << endl;
cout << obj.f2(1, 2) << endl;
}
结果是
1
3
obj.f1(1) 使用 Derived 和 obj.f2(1, 2) f1 实现em> 使用继承自 Base 的实现,这正是我想要的。
现在,我希望这两个函数具有相同的名称,f,因此基类在有两个参数时提供一个实现,而派生类必须实现单参数版本(即为什么它是纯虚拟的)。
但是,如果我这样做(只需将 f1 和 f2 重命名为 f):
class Base {
public:
virtual int f(int a) const = 0;
virtual int f(int a, int b) const { return a + b;}
};
class Derived : public Base {
public:
int f(int a) const { return a; }
};
int main() {
Derived obj;
cout << obj.f(1) << endl;
cout << obj.f(1, 2) << endl;
}
我收到以下错误:
20:23: error: no matching function for call to 'Derived::f(int, int)'
20:23: note: candidate is:
14:13: note: virtual int Derived::f(int) const
14:13: note: candidate expects 1 argument, 2 provided
这是为什么?做这种重载是不可能的吗?
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!