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);
}
Когда я называю foo
с помощью экземпляра MyClass
с A
объекта по неизвестной причине foo
метод MyClass
называется вместо foo
класса MyTmp
. Я использую gcc 4.4.2 с использованием -O3. Какие-нибудь советы?
Что вы имеете в виду, что вызывает 'метод Foo' из' MyClass'? Вы имеете в виду ... код не компилируется? «A» не является «B». – Barry
@Barry Нет кода компилируется, но во время выполнения вызывается неправильный метод. Это действительно странно. Однако после применения решения TartanLlama сейчас работает программа. – greywolf82