Почему следующий код не компилируется и как можно использовать функцию из базового класса?Перегрузка функций полиморфными шаблонами
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;
}
Edit: Хорошо, я думал, что это происходит только с шаблонными классами ... Что идея дизайнерского решения, чтобы скрыть версию базового класса по своей перегруженной версии из класса ребенка? Я имею в виду, что обе функции в одном классе работают нормально.
Они являются структурами. Доступ по умолчанию для структуры является общедоступным. – Danvil
ах да. -1 для себя. Что такое ошибка компилятора? –