首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++,求指导

2013-12-26 
c++,求指点#includeiostreamusing namespace stdtemplatetypename Tclass T_counter{public:void set

c++,求指点
#include<iostream>
using namespace std;
template<typename T>
class T_counter
{
public:
void setdate(T i){date=i;}
 void print();
 friend T_counter operator +(const T_counter &c1,const T_counter &c2);
friend T_counter operator -(const T_counter &c1,const T_counter &c2);
friend T_counter operator *(const T_counter &c1,const T_counter &c2);
friend T_counter operator /(const T_counter &c1,const T_counter &c2);
 T_counter &operator =(const T_counter c3);
private:
T date;
};
template<typename T>T_counter operator +(const T_counter &c1,const T_counter &c2)
{T_counter p;p.date=c1.date+c2.date;T_counter p
return p;}
template<typename T> T_counter operator -(const T_counter&c1,const T_counter &c2)
{T_counter p;p.date=c1.date-c2.date;
return p;}
template<typename T> T_counter operator *(const T_counter &c1,const T_counter &c2)
{T_counter p;p.date=c1.date*c2.date;
return p;
}
template<typename T> T_counter operator /(const T_counter *c1,const T_counter &c2)
{T_counter p;p.date=c1.date/c2.date;
return p;
}
template<typename T>
 T_counter &operator =(const T_counter c3)
 {date=c3.date;
return *this;}
 template<typename T>
void T_counter::print()
{cout<<date<<endl;}
template<typename T>
int main()
{T a ,b;T_counter p1,p2,c;
cin>>a>>b;
p1.setdate(a);p2.setdate(b);
c=p1+p2;
c.print();

1错误error C2955: “T_counter”: 使用类 模板 需要 模板 参数列表d:\pro\22\22\22.cpp16

2错误error C2801: “operator =”必须是非静态成员d:\pro\22\22\22.cpp33

3错误error C2244: “T_counter<T>::print”: 无法将函数定义与现有的声明匹配d:\pro\22\22\22.cpp36







































c=p1-p2;
c.print();
c=p1*p2;
c.print();
c=p1/p2;
c.print();
}
[解决办法]
模板需要实例化才能使用
T a ,b;T_counter p1,p2,c;改成int a, b; T_counter<int> p1, p2, c;试试

热点排行