我试图通过派生类调用模板化的基类方法。 这是我的代码
struct base
{
template<typename t>
void baseMethod(t s)
{
std::cout << s;
}
};
struct der : public base
{
};
int main()
{
der d;
d.<int>(baseMethod(12));
}
编译失败并说明
main.cpp:在函数'int main()'中:main.cpp:25:5:错误:预期 '&lt;'之前的unqualified-id token d。(baseMethod(12)); ^ main.cpp:25:6:错误:在'int'd之前预期的primary-expression。(baseMethod(12));
有关如何修复它的任何建议吗?
答案 0 :(得分:5)
尽管这个问题与继承无关,但正确的语法是
d.baseMethod<int>(12);
但是,由于template deduction:简单
,即使这样也不需要d.baseMethod(12);
会起作用。