刚开始用C ++学习模板,我有一小段代码没有编译:
template <class gen_data>
{
gen_data calculate(gen_data a, gen_data b)
{
return a+b;
}
}
int main()
{
int c,d;
cout<<"The sum is: "<<calculate(c,d)<<endl;
return 0;
}
当我编译它时,它给了我一个错误
功能主'计算'中的未在该范围内声明
任何人都可以帮忙解释这个错误的来源吗?
答案 0 :(得分:4)
声明模板函数的语法错误。围绕calculate
功能不应该有大括号。尝试重写它:
template <class gen_data> gen_data calculate(gen_data a, gen_data b)
{
return a+b;
}
希望这有帮助!
答案 1 :(得分:1)
你有一对括号太多了。这对我有用:
#include <iostream>
template <class gen_data>
gen_data calculate(gen_data a, gen_data b) {
return a+b;
}
int main() {
int c = 1, d = 2;
std::cout<<"The sum is: "<<calculate(c,d)<<std::endl;
return 0;
}