运算符重载实验8

  • 格式:doc
  • 大小:46.00 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》实验七运算符重载(电信系教师陈小常)

一、实验目的

1、掌握用成员函数重载运算符的方法

2、掌握用友元函数重载运算符的方法

二、实验内容

1.重载自增运算符

修改下面程序中的错误,添加成员函数的定义重载自增运算符,并调试输出运行结果。#include

using namespace std;

class counter

{

public;

Counter() {v=0;}

Counter opretor ++()

Counter opretor ++(int)

void print() {cout<

private:

unsingned v;

};

int main()

{

Counter c;

c.print();

(c++).print();

c.print();

++c;

c.print();

}

//修改下面程序中的错误,添加成员函数的定义重载自增运算符,并调试输出运行结果。#include

using namespace std;

class counter

{

public:

counter() {v=0;}

counter operator ++()//前缀

{

++v;

return *this;

}

counter operator ++(int)//后缀

{

counter te(*this);

v++;

return te;

}

void print()

{cout<

private:

unsigned v;

};

int main()

{

counter c;

c.print();

(c++).print();

c.print();

++c;

c.print();

return 0;

}

2.、重载加、赋值运算符

已知Mydatatype类的定义如下,添加成员函数的定义重载加或者赋值运算符,并调试输出运行结果:

# include

class mydatatype

{

protected:

int mndata;

public:

mydatatype();

mydatatype & operator=(int);

mydatatype & operator=(mydatatype & );

mydatatype & operator+(mydatatype & );

operator int()

{

return mndata;

}

};

int main()

{

mydatatype obj1,obj2,obj3;

obj1=10;

obj2=obj1;

obj3=obj1+obj2;

int nvalue=(int)obj3;

cout<<"nvalue="<

return 0;

}

//已知Mydatatype类的定义如下,添加成员函数的定义重载加或者赋值运算符,并调试输出运行结果:

# include

class mydatatype

{

protected:

int mndata;

public:

mydatatype();

mydatatype & operator=(int);

mydatatype & operator=(mydatatype & );

mydatatype& operator+(mydatatype & );

operator int()

{

return mndata;

}

void print()

{

cout<

}

};

mydatatype::mydatatype()

{

mndata=0;

}

mydatatype& mydatatype::operator=(int a)

{

mndata=a;

return *this;

}

mydatatype& mydatatype::operator=(mydatatype & p)

{

mndata=p.mndata;

return *this;

}

mydatatype& mydatatype::operator+(mydatatype & m)

{

mndata=mndata+m.mndata;

return *this;

}

int main()

{

mydatatype obj1,obj2,obj3;

obj1=10;

//obj1.print();

obj2=obj1;

//obj2.print();

obj3=obj1+obj2;

int nvalue=(int)obj3;

cout<<"nvalue="<

return 0;

}

3、建立类StrType,允许下面的操作符类型:

(1) 使用+操作符的字符串连接;

(2) 使用=操作符的字符串赋值;

(3) 使用<、>==操作符的字符串比较。

可以自由使用定长字符串。

修改下面程序中的错误,添加成员函数定义重载+、=、<、>、==运算符,并调试输出运行结果。

#include < iostream.h>

#include < string.h>

class StrType

{

public:

StrType(){ *s='\0';)

StrType(char * p){ strcpy(s,p);}

char * Get(){return s;}

StrType oprator + (StrType& s2);

StrType& oprator = (strType& s2);

int operator < (StrType& s2);

int operator > (StrType& s2);

int operator == (StrType& s2);

private:

char s[80];

}