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