{
return *this; }
coord coord::operator -()//重载负号“-” { coord temp; return temp; }
void main()
{ coord ob1(10,20),ob2(20,40),ob; ob1.print(); ob2.print(); ++ob1;
ob2.operator++(0);//显式调后后置运算符 ob1.print(); ob2.print(); ob=-ob1; ob.print(); }
程序5(exp_705.cpp)
//先编译运行程序,分析程序运行时的出错原因,再将重载“=”的部分恢复为正常语句,
//并完善程序
#include
string(char *s)
{ptr=new char[strlen(s)+1]; strcpy(ptr,s); }
~string()
{delete []ptr;} void print()
{cout < // string &operator=(const string&s); }; /* string &string::operator=(const string&s)//重载“=”运算符 { if(this==&s) return *this; //当用“ob1=ob1;”时 //首先释放被赋值对象的空间 //重新为被赋值对象分配空间 strcpy(ptr,s.ptr); return *this; 6 } */ void main() {string p1(\{string p2(\ \ p2=p1; p2.print(); } p1.print(); } ㈢ 程序设计实验 完善实验六中Date类的定义。要求增加成员函数实现: ⑴ 能比较两个日期的大小(重载“= =”、“>”、“<”、“>=”、“<=”、“!=”); ⑵ 编写main( )函数测试,内容自定。 提示:两个日期比较,先比较年、再比较月、再比较日,两个日期的年、月、日均相同才相等。 (日期类的定义存放在user_date.h中,测试程序存放在exp_706.cpp中) 五、实验收获 1、自己拟定一个类的定义,通过重载算术运算及关系运算符扩充其功能。 2、通过学习,谈谈你对运算符重载的认识。 7