【发布时间】:2011-03-13 05:56:41
【问题描述】:
在派生类中如果我从基类重新定义/重载函数名称,
那么这些重载函数对于派生类是不可访问/可见的。
为什么是这样??
如果我们不在派生类中从基类重载重载函数
那么该函数的所有重载版本都可用于派生类
对象,这是为什么呢??
这背后的原因是什么。如果您在编译器和链接器级别对此进行解释
这对我更有帮助。这种scinario不支持吗??
已编辑
例如:
B类
{
民众:
整数 f() {}
int f(string s) {}
};
D类:公共B
{
民众:
整数 f(int) {}
};
主函数()
{
d;
d.f(1);
//d.f(字符串); //隐藏为 D
}
现在对象 'd' 不能访问 f() 和 f(string)。
【问题讨论】:
-
你能发一些示例代码吗,你的描述根本不清楚。
-
@sbi 很抱歉发布了一个重复的问题。实际上,如果存在类似的问题,我尝试了一段时间,但我没有找到任何问题。我的搜索模式是错误的,那是你没有找到现有的问题。
-
没问题。这就是关闭重复项的功能。
标签: c++ overloading