#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;
}
求助!
c++类模板出现error C2955: 'Complex' : use of class template requires template argument list问题
答案:1 悬赏:20 手机版
解决时间 2021-01-31 16:57
- 提问者网友:温旧梦泪无声
- 2021-01-31 05:04
最佳答案
- 五星知识达人网友:野味小生
- 2021-01-31 06:19
这样的话可以编译过:
#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;
}
#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;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯