爲什麼下面的代碼不能編譯以及如何使用基類中的函數?使用多態模板重載函數
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