2016-04-08 15 views
0

派生クラスを介してテンプレートベースクラスメソッドを呼び出そうとしています。 これはコンパイルが失敗し、テンプレートベースクラスメソッドを呼び出すとコンパイルが失敗する

main.cpp: In function 'int main()': main.cpp:25:5: error: expected unqualified-id before '<' token d.(baseMethod(12)); ^main.cpp:25:6: error: expected primary-expression before 'int' d.(baseMethod(12));

私はそれを修正する方法上の任意の提案を述べ

struct base 
{ 
    template<typename t> 
    void baseMethod(t s) 
    { 
     std::cout << s; 
    } 
}; 


struct der : public base 
{ 
}; 


int main() 
{ 
    der d; 
    d.<int>(baseMethod(12)); 
} 

私のコードですか?

答えて

5

このquestuionは継承とは何の関係もないという事実にもかかわらず、適切な構文は、しかし

d.baseMethod<int>(12); 

だろう、でもこれは必要ありませんtemplate deductionによる単純な

d.baseMethod(12); 

だろう作業。

+0

ありがとうございました。構文は私を投げた - タイマーの後に答えとしてMArked –

関連する問題