TreeMind树图在线AI思维导图
当前位置:树图思维导图模板资格考试计算机2020年全国计算机二级C++复习知识点:重载赋值运算符实例思维导图

2020年全国计算机二级C++复习知识点:重载赋值运算符实例思维导图

  收藏
  分享
免费下载
免费使用文件
余生愿你常欢笑 浏览量:102023-04-10 16:57:43
已被使用0次
查看详情2020年全国计算机二级C++复习知识点:重载赋值运算符实例思维导图

备考2020年全国计算机二级考试的小伙伴们,复习的都怎么样了呢?树图网小编整理了2020年全国计算机二级C++复习知识点供大家参考复习,小伙伴们快来看看,测试一下自己吧!了解更多全国计算机二级考试敬请关注树图网计算机二级频道。

树图思维导图提供 2020年全国计算机二级C++复习知识点:重载赋值运算符实例 在线思维导图免费制作,点击“编辑”按钮,可对 2020年全国计算机二级C++复习知识点:重载赋值运算符实例  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:af4df8462a32faef08f0d257859a269c

思维导图大纲

2020年全国计算机二级C++复习知识点:重载赋值运算符实例思维导图模板大纲

2020年全国计算机二级C++复习知识点:重载赋值运算符实例

当需要为同一个类的两个对象相互赋值时,就可以重载运算符函数。这个方法可以解决类的赋值和指针的释放。

下面的程序中,类中的赋值函数用new运算符从堆中分配了一个不同的指针,该指针获取赋值对象中相应的值,然后拷贝给接受赋值的对象。

在类中重载赋值运算符的格式如下:

void operator = (const Date&)

后面我们回加以改进。目前,重载的运算符函数的返回类型为void。它是类总的成员函数,在本程序红,是Date类的成员函数。它的函数名始终是operator =,参数也始终是同一个类的对象的引用。参数表示的是源对象,即赋值数据的提供者。重载函数的运算符作为目标对象的成员函数来使用。

#include iostream.h

#include string.h

class Date

int mo,da,yr;

char *month;

public:

Date(int m=0, int d=0, int y=0);

~Date();

void operator=(const Date&);

void display() const;

Date::Date(int m, int d, int y)

static char *mos[] =

January,February,March,April,May,June,

July,August,September,October,November,December

mo = m; da = d; yr = y;

if (m != 0)

month = new char[strlen(mos[m-1])+1];

strcpy(month, mos[m-1]);

else month = 0;

Date::~Date()

delete [] month;

void Date::display() const

if (month!=0) cout< char name[25];

cin >> name;

if (strncmp(name, end, 3) == 0) break;

ListEntry* list = new ListEntry(name);

if (prev != 0) prev->AddEntry(*list);

prev = list;

while (prev != 0)

prev->display();

ListEntry* hold = prev;

prev = prev->PrevEntry();

delete hold;

return 0;

程序运行时,会提示输入一串姓名,当输入完毕后,键入end,然后程序会逆序显示刚才输入的所有姓名。

程序中ListEntry类含有一个字符串和一个指向前一个表项的指针。构造函数从对中获取内存分配给字符串,并把字符串的内容拷贝到内存,然后置链接指针为NULL。析构函数将释放字符串所占用的内存。

成员函数PrevEntry()返回指向链表前一个表项的指针。另一个成员函数显示当前的表项内容。

成员函数AddEntry(),它把this指针拷贝给参数的preventry指针,即把当前表项的地址赋值给下一个表项的链接指针,从而构造了一个链表。它并没有改变调用它的listEntry对象的内容,只是把该对象的地址赋给函数的参数所引用的那个ListEntry对象的preventry指针,尽管该函数不会修改对象的数据,但它并不是常量型。这是因为,它拷贝对象的地址this指针的内容给一个非长常量对象,而编译器回认为这个非常量对象就有可能通过拷贝得到的地址去修改当前对象的数据,因此AddEntry()函数在声明时不需要用const.

相关思维导图模板

流程图表示思维导图

树图思维导图提供 流程图表示 在线思维导图免费制作,点击“编辑”按钮,可对 流程图表示  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:5948c35cf208112e2ca32158796e1b7e

思维导图思维导图

树图思维导图提供 思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:bcea44ba49b736a7526246a1cbf17a43