请大家来帮忙找错误C++

来源:百度知道 编辑:UC知道 时间:2024/05/30 03:24:26
#include<iostream>
using namespace std;
template<class T>
class base
{
friend class Firclass;
public:
T getitem();
void setitem(const T& data);
friend base<T> operator +(base<T> left,base<T> right);
base();
base(T s1);
base(base<T> s2);
private:
T item;
};

T base<T>::getitem()
{
return item;
}

void base<T>setitem(const T& data)
{
item=data;
}

base<T> base<T>::operator +(base<T> left,base<T> right)
{
base<T> temp;
temp.item=left.item+right.item;
return temp;
}

base<T>::base()
{
item=0;
}

base<T>::base(T s1)
{
item=s1;
}

base<T>::base(base<T> s2)
{
item=s2.item;
}

我是一个初学者,没老师问,总是不知道怎么错了,只能请教各位大哥大姐帮帮忙,告诉我哪里错了,万分感谢!!

你定义的友元函数,既那个预算副重载函数base<T> base<T>::operator +(base<T> left,base<T> right) ,这样写不对
应为
base<T> operator +(base<T> left,base<T> right)

在每个函数外部实现之前在 前面都加上
template<class T>
例如
template<class T>
T base<T>::getitem()
{
return item;
}
template<class T>
void base<T>setitem(const T& data)
{
item=data;
}
。。。。。。。。。。

程序没主函数main,不完整