C++实验: 运算符重载
1.实验目的
(1)进一步了解运算符重载的概念与使用方法。
(2)掌握几种常用的运算符重载方法。
(3)了解转换构造函数的使用方法。
(4)了解在Visual C++6.0环境下进行运算符重载要注意的问题。
2.实验内容
(1)声明一个复数类,重载运算符函数作为其成员函数,使之用于复数计算;
(2)声明一个复数类,重载运算符“+”,使之用于复数加法运算,同时求复数、整数的和;
(3)求已知的矩阵之和,重载运算符“+”,使之用于矩阵相加;
(4)声明一个教师类和学生类,有部分数据成员相同,转换学生对象为教师类,将相同数据移植过去。
3.实验代码
#include <iostream>
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;
c.real= real + c2.real;
c.imag= imag + c2.imag;
return c;
}
Complex Complex::operator-(Complex &c2)
{
Complex c;
c.real= real - c2.real;
c.imag= imag - c2.imag;
return c;
}
Complex Complex::operator*(Complex &c2)
{
Complex c;
c.real= real * c2.real -imag * c2.imag;
c.imag= imag * c2.real +real * c2.imag;
return c;
}
Complex Complex::operator/(Complex &c2)
{
Complex c;
c.real= (real*c2.real +imag * c2.imag) /(c2.real*c2.real + c2.imag*c2.imag);
c.imag= (imag*c2.real -real * c2.imag) /(c2.real*c2.real + c2.imag*c2.imag);
return c;
}
void Complex::display()
{
cout<<<