scanf("%d",arr[i])
有人可以向我解释为什么这些方法调用不明确吗?
当它们以“Writeonly”或“Readonly”放在一起时,它们并不含糊。
我想将它用于基于模板的访问器属性。因此,我希望能够使用“Writeonly”,“Readonly”和“Unrestricted”的实例。
答案 0 :(得分:6)
因为编译器在两个不同的范围内找到了名称。
诀窍是将两个名字都纳入Unrestricted
:
class Unrestricted : public Readonly, public Writeonly {
public:
using Readonly::method;
using Writeonly::method;
};
答案 1 :(得分:0)
可能你觉得它有效,因为你正在考虑函数重载。问题是不同的功能在不同的范围内。在这种情况下,编译器没有重载函数列表来选择正确的函数。
如果你想让它工作,你必须将函数放在同一范围内。