1
1
如果我理解你的问题,它与虚函数或const的“优先级”无关,而是一个很老的“名称隐藏”。
输出:派生(双精度) 问题是,名称查找并不像您所期望的那样工作。 对于给定的作用域,它搜索名称以构建重载集。在派生的上下文中,只有一个f(),因此当找到它时,编译器 停止进一步搜索更多重载 。 它查找派生(double),这是整个重载集,因此它被选中。当您将派生类强制转换为对基的引用,然后调用某个对象时,会考虑这两个函数(在基中声明),重载解析会选择最佳匹配。 现在,通常情况下,对于多态类型,您使用的对象是指向基的指针/引用,因此这不是问题。但是如果您直接调用派生类(可能是从派生类的成员内部调用?)然后会出现派生声明隐藏基名称的问题。 要使基名在派生类中可见,很容易:
|
2
1
您应该添加
在里面
如果对象为非常量,则可以调用基类函数 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |