Почему следующий код не компилируется и как можно использовать функцию из базового класса?
template<typename K> struct Base
{
K foo() { return (K)0; }
};
template<typename K> struct Extension
: public Base<K>
{
K foo(int a) { return (K)a; }
};
int main()
{
Extension<float> e;
e.foo();
return 0;
}
Редактировать: Хорошо, я думал, что это толькопроисходит с шаблонными классами ... В чем заключается идея решения о том, чтобы скрыть версию базового класса по перегруженной версии от дочернего класса?Я имею в виду, что объявление обеих функций в одном классе прекрасно работает.