假设我有三个课程:
class X{};
class Y{};
class Both : public X, public Y {};
我的意思是说我有两个类,然后是第三个类,它扩展了两者(多重继承)。
现在说我在另一个类中定义了一个函数:
void doIt(X *arg) { }
void doIt(Y *arg) { }
我用两者的实例调用这个函数:
doIt(new Both());
这会导致编译时错误,说明函数调用不明确。
除了这种情况,C++ 编译器在哪些情况下判断调用不明确并抛出错误(如果有)?编译器如何确定这些情况是什么?