2 ddd128 ddd128 于 2016.04.21 19:58 提问

类模版对运算符重载以及输入输出重载
c++

#include
//using namespace std;
template
class Complex
{
public:
friend istream& operator >> (istream &input,Complex &c)
{
cin >> c.real >> c.imag;
return input;
}
friend ostream& operator << (ostream &output,Complex &c)
{
cout << "(" << c.real << "+" << c.imag << "i)" << endl;
return output;
}
//friend istream & operator >> (istream &input,Complex &);
//friend ostream & operator << (ostream &output,Complex &);
Complex(T r,T i)
{
real = r;
imag = i;
}
Complex(){}
Complex operator + (Complex &c2)
{
return Complex(real + c2.real,imag + c2.imag);
}

Complex operator * (Complex &c2)
{
    return Complex(real * c2.real,imag * c2.imag);
}
Complex operator % (Complex &c2)
{
    return Complex(real % c2.real,imag % c2.imag);
}
Complex operator - (Complex &c2)
{
    return Complex(real - c2.real,imag - c2.imag);
}

private:
T real,imag;
};
//template

int main()
{
Complexc1,c2,c3;
cout << "请输入第一个对象的实部和虚部" << endl;
cin >> c1;
cout << "请输入第一个对象的实部和虚部" << endl;
cin >> c2;
c3 = c1 + c2;
cout << c3;
c3 = c1 - c2;
cout << c3;
c3 = c1 * c2;
cout << c3;
c3 = c1 % c2;
cout << c3;
return 0;

}

2个回答

CSDNXIAOD
CSDNXIAOD   2016.04.21 20:02

C++重载<<和>>(输入输出运算符)
C++ 输入输出运算符重载
重载输入输出运算符
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

ddd128
ddd128   2016.04.21 22:05

啊,解决了,太粗心了图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于类模板重载输入输出流的思考
在模板中输入输出流的重载,若使用友元在类模板中声明,在类模板外实现;那么链接时就会报错,可以使用五种方式来实现输入输出流的重载. 第一种方法:将输入流输出流的重载的实现写在类模板中 template class Test { public: Test(const T& data):m_data(data){} friend ostream& operator & obj)
第九周C++报告二。定义Time类中的<<和>>运算符重载,实现时间的输入输出
【任务2】接第8周任务2,定义Time类中的>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然     #include using namespace std; class CTime { private: unsigned short int hour; // 时
浅谈C++类(8)--重载输入输出操作符
欢迎转载,但请标明作者 “九天雁翎”,当然,你给出这个帖子的链接更好。其实我们已经用过操作符重载,还记得>吗?本来不是移位操作符吗?在C++里面我们已经把他们当作输入输出操作符用过了,我们今天来研究一下重载他们用来输入输出类,先还是用水果来举一个例子。例8.0:#include #include using namespace std;class Fruit              
模版类运算符重载
自定义分数模版类,运算符重载,同时支持宽字符,wchar_t #include #include #include template //分数模版类 class Fraction { public: Fraction()=default; Fraction(classT m,classT d):mol(m),del(d){} Fraction& operator=(c
重载输入输出运算符
原文链接:http://blog.csdn.net/lyh__521/article/details/49601489重载输入输出运算符 我们平时可以用流 std::cout<<str<<n ; std::cin>>str>>n ; 输出、输入字符串和整型等内置类型的值。但是对于我们自定义的类,比如 Student 类,却不能直接通过 cout<<Student 或 cin>>Student 这
C++ 输入输出运算符重载 感想
在C++中,经常会对输入输出运算符进行重载,而在重载的时候用到了友元(Friends)和引用返回(Returning References),这里对为什么会这么用发表一些思考。 比如,下面的类是一个简单的Student类,其中重载了<<和>>。// // Created by lgl on 17-3-14. // #include <iostream> #include <string> #inc
C++_模板类的友元运算符重载_原理
#include using namespace std; template class Test { private: T num; public: Test( T n) { num=n; } friend ostream& operator(ostream &out,const Test &); }; template ostream& operator(ostream &
运算符重载,友元函数,重载输入输出运算符,状态成员,rand(),类的自动转换
运算符重载:计算时间的运算符重载实例: mytime0.h: #ifndef MYTIME0_H_ #define MYTIME0_H_ class Time { private: int hours; int minutes; public: Time(); Time(int h, int m = 0);//构造函数重载 void AddMin(int
类的运算符重载
<br />类的运算符重载 <br />参考书籍 :C++ 世界的两本世界名著 [C++ 程序设计语言 ] 和 [C++primer]<br />重载知识点 <br />1. 重载运算符 <br />1.1 引言 <br />1.2 限定及重载语法 <br />1.2.1 限定 <br />1.2.2 重载语法 <br />1.3 重载运算符设计指导 <br />1.4 成员 / 非成员函数重载 <br />1.5 成员函数重载 <br />1.6 非成员函数 ( 友元函数 ) 重载 <br />1.7 重
第九周C++任务三。定义分数类中<<和>>运算符重载,实现分数的输入输出
【任务3】接第8周任务3,定义分数类中>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。     #include using namespace std; class CFraction { private: int nume; // 分子 int deno; // 分