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