1
我有一个具有重载方法的类。某个子类继承这两种类型。是否可以设置一个默认的方法调用,以避免调用static_cast<class>(obj)
为不明确的重载函数调用创建默认值
struct A {};
struct B {
void foo(const A) {
/*impl*/
}
void foo(const B) {
/*impl*/
}
};
struct C : A, B {
};
int main() {
C c;
B b;
b.foo(c); //ambiguous
}
有什么办法可以让编译器默认的某些方法调用?
*接受了聪明/优雅的解决方法。
如何声明'void foo(const C)'以便它可以调用默认值? – wally
对不起,foo是一个超类的方法调用,C是一个子类。我将编辑我的问题来展示这一点。 –
也许在发布之前尝试编译您的示例。有很多语法错误,现在的问题令人困惑,因为如果它是一个成员函数,foo不能被这样调用。 – wally