c++运算符重载习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Task8-1
/*
1. 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和*/
#include
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
void display();
double real;
double imag;
};
void Complex::display()
{
cout<<"("< } Complex operator +(Complex &c1,Complex &c2) { Complex p; =+; =+; return p; } int main() { Complex c1(3,5),c2(2,5),c3; (); cout<<"+"; (); cout<<"="; c3=c1+c2; (); } Task8-2 /*2. 定义一个复数类Complex,重载运算符“+”、”-“、”*”、”/”, 使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数,编程,分别求两个复数之和差积商。 */ #include using namespace std; class Complex {public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c2); Complex operator-(Complex &c2); Complex operator*(Complex &c2); Complex operator/(Complex &c2); void display(); private: double real; double imag; }; Complex Complex::operator +(Complex &c2) {Complex c; =real+; =imag+; return c; } Complex Complex::operator -(Complex &c2) {Complex c; =; =; return c; } Complex Complex::operator *(Complex &c2) {Complex c; =real*; =imag*; return c; } Complex Complex::operator /(Complex &c2) {Complex c; =(real*+imag*/*+*; =(imag**/*+*; return c; } void Complex::display() {cout<<"("< } int main() {Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; cout<<"c1+c2="; (); c3=c1-c2; cout<<"c1-c2="; (); c3=c1*c2; cout<<"c1*c2="; (); c3=c1/c2; cout<<"c1/c2="; (); return 0; } Task8-3 /* 3. 有两个矩阵a和b,均为n行m列(m、n的值自己给出), 求两个矩阵之和、差、积、商,重载运算符“+”、”-“、”*”、”/”, 使之能用于矩阵向加减乘除,如c=a+b、 c=a*b。 */ #include #define n 2 #define m 3 using namespace std; class Matrix 在第三题的基础上,重载运算符>>和<<, 使之能用于该矩阵的输入和输出。 */ #include #define n 2 #define m 3 using namespace std; class Matrix 实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除 (运算后再化简)、求反、比较(6种关系)的运算。 */ #include #include<> using namespace std;