运算符重载C++课程实验报告.doc
《运算符重载C++课程实验报告.doc》由会员分享,可在线阅读,更多相关《运算符重载C++课程实验报告.doc(3页珍藏版)》请在冰点文库上搜索。
C++第四次实验
学生姓名
xxx
班级
学号
xxxxxxxxx
实验项目
实验四运算符重载
指导教师
杜之波
实验目的和要求
一、实验目的
(1)掌握通过运算符重载实现多态性的方法;
(2)学会运算符重载的成员函数法和友元函数法;
(3)能区分单目运算符的前置与后置。
二、实验内容
编写如下要求的完整程序:
点对象运算符重载
(1)建立点类,包含两个成员变量,分别表示横坐标和纵坐标;
(2)具体要求
1,重载前置运算符++、--;
2,重载后置运算符++、--;
3,主函数:
申明点对象,进行前置和后置运算并显示点值。
实验内容
实验程序设计如下:
#include
usingnamespacestd;
classAB
{
public:
AB(intxx,intyy);
voidShowAB();
AB&operator++();
ABoperator++(int);
AB&operator--();
ABoperator--(int);
private:
intx1,x2;
};
AB:
:
AB(intxx,intyy)
{
x1=xx;
x2=yy;
}
voidAB:
:
ShowAB()
{
cout<}
AB&AB:
:
operator++()
{
x1++;
x2++;
return*this;
}
ABAB:
:
operator++(int)
{
ABold=*this;
++(*this);
returnold;
}
AB&AB:
:
operator--()
{
x1--;
x2--;
return*this;
}
ABAB:
:
operator--(int)
{
ABold=*this;
--(*this);
returnold;
}
intmain(void)
{
ABAA(0,0);
ABBB(0,0);
cout<<"A的值为:
";
AA.ShowAB();
cout<<"B的值为:
";
BB.ShowAB();
cout<<"B=A++运算后,A的值为:
";
(++AA).ShowAB();
cout<<"B的值为:
";
(BB++).ShowAB();
cout<<"B=++A运算后,A的值为:
";
(++AA).ShowAB();
cout<<"B的值为:
";
(++BB).ShowAB();
cout<<"B=A--运算后,A的值为:
";
(--AA).ShowAB();
cout<<"B的值为:
";
(BB--).ShowAB();
cout<<"B=--A运算后,A的值为:
";
(--AA).ShowAB();
cout<<"B的值为:
";
(--BB).ShowAB();
return0;
}
实验结果如图:
实验心得:
实验过程中值得注意的是区分前置和后置运算符的区别:
前置运算符先运算后返回;后置运算符先返回后运算。
这点很重要,由于之前没有注意,所以做出来的值不对,后来改正之后就对了。
通过这次实验,我基本掌握了通过运算符重载实现多态性的方法,学会了运算符重载的成员函数法和友元函数法,基本能够区分单目运算符的前置与后置。
教师签字
签字日期
2011年6月14