C ++模板类编译错误:'<'之前的预期init-declarator代币

时间:2013-06-13 10:54:50

标签: c++ templates compiler-errors

我正在学习c ++中的模板,并根据本教程:http://www.cprogramming.com/tutorial/templates.html

我做了CalcTempl.h课程

#ifndef CALC_TEMPL_H
#define CALC_TEMPL_H

template <class A_Type> class CalcTempl
{
  public:
    A_Type multiply(A_Type x, A_Type y);
    A_Type add(A_Type x, A_Type y);
};

template <class A_Type> A_Type calc<A_Type>::multiply(A_Type x,A_Type y)
{
  return x*y;
}
template <class A_Type> A_Type calc<A_Type>::add(A_Type x, A_Type y)
{
  return x+y;
}

#endif

和main.cpp

#include <iostream>
#include "CalcTempl.h"

using namespace std;

int main(){

  CalcTempl<double> c2;

  double d1 = 5;
  double d2 = 4;

  double c2r1 = c2.add(d1, d2);

  cout << " C2 Result: " << c2r1 << "\n";

  return 0;
}

在编译时(g ++ main.cpp -o ttest)我收到了这个错误:

CalcTempl.h:11: error: expected init-declarator before '<' token
CalcTempl.h:11: error: expected `;' before '<' token
CalcTempl.h:15: error: expected init-declarator before '<' token
CalcTempl.h:15: error: expected `;' before '<' token

我找不到有什么问题

1 个答案:

答案 0 :(得分:2)

您的班级名为CalcTempl,但在您实施其成员时,您尝试将其称为calc。那不行。