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;

}

解决方案

C++重载<<和>>(输入输出运算符)
C++ 输入输出运算符重载
重载输入输出运算符

解决方案二:

啊,解决了,太粗心了

时间: 2024-12-02 03:37:44

c++-类模版对运算符重载以及输入输出重载的相关文章

C++实践参考——分数类中的运算符重载

[项目1-分数类中的运算符重载] (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算. class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及用于测试的main()函数 (2)在(1)的基础上,实现分数类中的对象和整型数的四则运算.分数类中的对象可以和整型数进行四则运算,且运算符合交换律.例如:CFra

C++实践参考——Time类中的运算符重载

[项目-Time类中的运算符重载] 实现Time类中的运算符重载. class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTime(int h=0,int m=0,int s=0); void setTime(int h,int m,int s); void display(); //二目的比较运算符

C++第9周项目3 - 实现分数类中的运算符重载

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8841620 [项目3-分数类]接第8周项目3,定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然. 参考解答: #include <iostream> #include <C

C++第9周项目2 - 实现时间类中的运算符重载

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8841620 [项目2-Time类]接第8周项目2,定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然. 参考解答: #include <iostream> using nam

第8周-任务3-实现分数类中的运算符重载

[题目]实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).求反.比较(6种关系)的运算. class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及用于测试的main()函数 [参考解答] #include <iostream> using namespace std; class CFraction { private: int

C++第8周项目3 - 分数类中的运算符重载

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8806111 [项目3-分数类中的运算符重载]实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).求反.比较(6种关系)的运算.可以从第5周项目2的代码开始工作. class CFraction {private: int nume; /

C++第8周(春)项目1 实现复数类中的运算符重载

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目1]实现复数类中的运算符重载(1)请用类的成员函数,定义复数类重载运算符+.-.*./,使之能用于复数的加减乘除 class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} Complex operator+(C

第8章-任务4-实现分数类中的运算符重载(分数与整数运算)

[题目]在任务3的基础上拓展.分数类中的对象可以和整型数进行四则运算,且运算符合交换律.例如:CFraction a(1,3),b; int i=2; 可以完成b=a+i;.同样,可以完成i+a, 45+a, a*27, 5/a等各种运算. 参考:第8周-任务3-实现分数类中的运算符重载 [参考解答]--逐一写出来,需要的是耐心 #include <iostream> using namespace std; class CFraction { private: int nume; // 分子

《C++语言基础》实践参考——分数类中的运算符重载

返回:贺老师课程教学链接 [项目3-分数类中的运算符重载] (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算.可以在第4周分数类代码的基础上开始工作. class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及用于测试的main()函数 [参考解答] #include <iostream> #inclu