1、实验7 运算符重载(1)
实验目的:
1、理解什么是运算符重载;
2、熟悉运算符函数的声明、定义、调用;
3、掌握使用类的成员函数重载运算符方法;
4、掌握使用友元函数重载运算符方法;
5、熟悉算术运算符、关系运算符的重载方法;
6、了解CTime等MFC类中的运算符重载情况。
实验内容
1、复数是大家中学时期就学过的知识,设 a+bi 和 c+di 是两个复数,则它们的四则运规则如下:
请按下列步骤操作,体会什么是运算符重载,理解实现运算符使用的两种基本方法:
(1) 复制下列代码到开发工具并加以运行,观察整数的+、-运算是否成
2、功?
#include
using namespace std;
class Complex
{
private:
double real,image; //分别为实部、虚部
public:
Complex(double rel=0, double img=0)
{
real=rel;
image=img;
}
void display() //输出(a+b*i) 、(a-b*i) 、(a)等形式
{
cout<<" ("<0)
cout<
3、<"+"<4、制下列代码到 位置3 处,再次编译、运行程序,观察复数的+、-运算是否可行?从中得出什么结论?试说明其中的原因。
Complex c1(1,2), c2(3,-4),c3,c4;
c3=c1+c2;
c4=c1-c2;
//输出加的结果
c1.display();
cout<<"+";
c2.display();
cout<<"=";
c3.display();
cout<5、splay ();
cout<6、real+c.real;
temp.image=image+c.image;
return temp;
}
//友元函数的定义
Complex operator -(Complex & c1,Complex & c2)
{
Complex temp;
temp.real=c1.real-c2.real;
temp.image=c1.image-c2.image;
return temp;
}
(4)分析上述代码,结合小课ppt理解运算符函数的声明、定义、调用,熟悉运算符重载的两种基本方法:使用类成员函数和友元函数,注意它们之间参数的差异。
2、参
7、照上一题的程序,掌握用类成员函数重载运算符的方法
要求:在程序的适当位置填写程序代码,使用成员函数方法实现下列运算符重载:
(1) 复数 + 实数(double) 运算;
(2) 复数 * 复数 运算。
程序代码:
#include
using namespace std;
class Complex
{
private:
double real,image; //分别为实部、虚部
public:
Complex(double rel=0, double img=0)
{
real=rel;
image
8、img;
}
void display() //输出(a+b*i) 、(a-b*i) 、(a)等形式
{
cout<<" ("<0)
cout<<"+"<9、的类外定义
Complex Complex::operator +(Complex & c)
{
Complex temp;
temp.real=real+c.real;
temp.image=image+c.image;
return temp;
}
void main()
{
Complex c1(1,2), c2(3,-4),c3,c4;
c3=c1+123.456;
c4=c1*c2;
//输出加的结果
c1.display();
cout<<"+";
cout<<123.456;
cout<<"=";
c3.disp
10、lay();
cout<11、int型,1表示“true”,0表示“false”)
程序代码:
#include
using namespace std;
class Complex
{
private:
double real,image; //分别为实部、虚部
public:
Complex(double rel=0, double img=0)
{
real=rel;
image=img;
}
void display() //输出(a+b*i) 、(a-b*i) 、(a)等形式
{
cout<<"
12、"<0)
cout<<"+"<13、omplex temp;
temp.real=c1.real-c2.real;
temp.image=c1.image-c2.image;
return temp;
}
void main()
{
Complex c1(10,9), c2(3,-4),c3;
c3=c1/5;
//输出除的结果
c1.display();
cout<<"/";
cout<<5;
cout<<"=";
c3.display();
cout<14、t<<(c1==c2)<