3
我有以下類:重載方法與模板
class A: public Util<double> {}
class B: public Util<double>, public Interface {}
template<class T>
class MyTmp {
public:
void foo(const A& a);
}
class MyClass: public MyTmp<Other> {
public:
void foo(const B& b);
}
當我使用的MyClass
的實例與A
對象不明原因的MyClass
的foo
方法被調用,而不是類的foo
調用foo
MyTmp
。我使用-O3使用gcc 4.4.2。有小費嗎?
你是什麼意思它調用'MyClass'的'foo'方法?你的意思是......代碼不能編譯? A'不是'B'。 – Barry
@Barry沒有代碼編譯,但在運行時調用了錯誤的方法。這真的很奇怪。然而,在應用TartanLlama的解決方案之後,該程序現在可以運行。 – greywolf82