Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++模板-基础_C++_Templates - Fatal编程技术网

C++模板-基础

C++模板-基础,c++,templates,C++,Templates,我试着按照我的大学笔记去做,我试着用谷歌搜索错误并查看stackover flow,但我似乎无法找出哪里出了问题 我读过很多地方,需要在一个文件头中同时包含实现文件和规范文件,所以我已经这样做了。我刚刚从打印的幻灯片上复制粘贴了下来,在谷歌上搜索了一下,并试图复制页面上写的内容,但仍然会出现错误。我正在使用g++编译器 不管怎样,这是我的代码 template<class A_Type> class calc { public: A_Type multiply(A_Ty

我试着按照我的大学笔记去做,我试着用谷歌搜索错误并查看stackover flow,但我似乎无法找出哪里出了问题

我读过很多地方,需要在一个文件头中同时包含实现文件和规范文件,所以我已经这样做了。我刚刚从打印的幻灯片上复制粘贴了下来,在谷歌上搜索了一下,并试图复制页面上写的内容,但仍然会出现错误。我正在使用g++编译器

不管怎样,这是我的代码

template<class A_Type> 
class calc
{
  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;
}
我得到了一个错误:test.h的第10行的'calc'之前需要构造函数、析构函数或类型转换


我错过什么了吗?我不明白

你的多重定义是模板小写t,然后你在其他地方使用大写。

谢谢,至少看了一个小时了。感激
template<class A_type>                            // lowercase t in A_type
A_Type calc<A_Type>::multiply(A_Type x, A_Type y) // uppercase T's in A_Type