永发信息网

c++类模板出现error C2955: 'Complex' : use of class template requires template argument list问题

答案:1  悬赏:20  手机版
解决时间 2021-01-31 16:57
#include <iostream.h>
template <class T>
class Complex
{
private:
T real;
T imag;
public:
Complex(T r=0,T i=0)
{
real=r;
imag=i;
}
void print()
{
if(imag>0)
cout<<real<<"+"<<imag<<"i"<<endl;
else
{
if(imag<0)
cout<<real<<imag<<"i"<<endl;
else
cout<<real<<endl;
}
}
friend Complex operator+(Complex p1,Complex p2);
friend ostream & operator<<(ostream & out,Complex &);
friend istream & operator>>(istream & in,Complex &);
};
template <class T>
ostream & operator<<(ostream & out,Complex & a)
{
out<<a.real;
if(a.imag!=0)
{
if(a.imag>0)
{
out<<"+";
}
out<<a.imag<<"i";
}
out<<endl;
return out;
}
template <class T>
istream & operator>>(istream & in,Complex & a)
{
cout<<"请输入实部与虚部:\n";
in>>a.real;
in>>a.imag;
return in;
}
template <class T>
Complex <T> operator+(Complex <T> p1,Complex <T> p2)
{
Complex <T> p;
p.real=p1.real+p2.real;
p.imag=p1.imag+p2.imag;
return p;
}
int main()
{
Complex <double> a1,a2,a3;
cin>>a1;
cin>>a2;
a3=a1+a2;
cout<<a3;
return 0;
}

求助!
最佳答案
这样的话可以编译过:
#include <iostream>
using namespace std;

template <class T>
class Complex
{
private:
T real;
T imag;
public:
Complex(T r = 0, T i = 0)
{
real = r;
imag = i;
}
void print()
{
if (imag > 0)
cout << real << "+" << imag << "i" << endl;
else
{
if (imag < 0)
cout << real << imag << "i" << endl;
else
cout << real << endl;
}
}
template <class T>
friend Complex<T>  operator+(Complex<T> p1, Complex<T> p2);
template <class T>
friend ostream & operator<<(ostream & out, Complex<T> &);
template <class T>
friend istream & operator>>(istream & in, Complex<T> &);
};
template <class T>
ostream & operator<<(ostream & out, Complex<T> & a)
{
out << a.real;
if (a.imag != 0)
{
if (a.imag > 0)
{
out << "+";
}
out << a.imag << "i";
}
out << endl;
return out;
}
template <class T>
istream & operator>>(istream & in, Complex<T> & a)
{
cout << "请输入实部与虚部:\n";
in >> a.real;
in >> a.imag;
return in;
}
template <class T>
Complex <T> operator+(Complex <T> p1, Complex <T> p2)
{
Complex <T> p;
p.real = p1.real + p2.real;
p.imag = p1.imag + p2.imag;
return p;
}
int main()
{
Complex <double> a1, a2, a3;
cin >> a1;
cin >> a2;
a3 = a1 + a2;
cout << a3;
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请帮我翻译成英语:真好,你成功的把我的心给
标点符号中的々怎么发音?
工读驾校(太原杏花岭)怎么去啊,我要去那办事
黄仁宇有一本书围绕公元1587的明代历史展开,
工读驾校(太原尖草坪)地址在哪,我要去那里办
黑天鹅小吃培训中心是骗子,在间地下室里面,
他们离婚了 英语怎么说
工读驾校(太原尖草坪)地址好找么,我有些事要
求高人给个完美破解psp3000的软件,我的不是
东山驾校(太原迎泽区)地址在什么地方,想过去
如图所示,等腰梯形ABCD与等腰梯形A′B′C′D
永东驾校(太原小店)地址好找么,我有些事要过
东山驾校(太原杏花岭)地址好找么,我有些事要
问道点化之后进化
60岁早上咳嗽夜里咳嗽有浓痰是什么毛病
推荐资讯
考南京信息工程大学的大气科学专业研究生难不
中国电信在国外怎么上网?我包了流量……
白庄花卉园怎么去啊,我要去那办事
反应父母关爱子女的诗歌,两个
深色牛仔服配什么颜色的裤子
激光脱毛器哪种仪器好
安徽医科大学临床研究生好考吗?
丰田宝生物智能肥大姜能用吗
如何向工信部投诉华为应用市场
翠堤华府停车场(出入口)怎么去啊,我要去那办
停车场(重庆市双桥防雷中心东北)怎么去啊,我
晕车应该怎么办,好多办法都试过了都不行
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?