为什么下面的代码不能编译以及如何使用基类中的函数?使用多态模板重载函数
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;
}
编辑:好吧,我认为这是只与模板类发生...什么是背后的设计决定从子类的重载版本隐藏了基类版本的想法?我的意思是,在同一个类中声明这两个函数都可以。
这些结构拨打电话。 struct的默认访问是公共的。 – Danvil 2010-09-10 16:43:34
啊是的。 -1为我自己。什么是编译器错误? – 2010-09-10 16:46:29