头歌平台:程序设计二(面向对象)

您所在的位置:网站首页 java中复合赋值运算符 头歌平台:程序设计二(面向对象)

头歌平台:程序设计二(面向对象)

2024-01-02 16:40| 来源: 网络整理| 查看: 265

第1关:拷贝赋值运算符重载 任务描述

首先,赋值运算符重载必须使用成员函数形式。其次,拷贝赋值运算符是指形参为本类型的常引用的赋值运算符。也有直接以本类型为参数的拷贝赋值,但是不常见。通常拷贝赋值运算符重载的参数与拷贝构造函数保持一致。

相关知识

运算符重载,相当于一个固定了函数名的函数。以重载加号运算符为例,其函数名就是

operator +

运算符重载不能改变运算符的优先级与结合性,本质上也不能改变参数的数量(即双目运算符重载,必须拥有 2 个形参)。但是,如果以成员函数进行重载,则参数数量需要减一。减掉的那个参数,实际上就是调用该运算符时的类对象。

运算符重载的使用有 2 种形式,运算符形式和函数形式。以加号运算符为例,如果是成员函数形式重载,则:

Int a,b,c;c = a + b;//运算符形式调用c = a.operator + (b);//成员函数形式调用

如果是以普通函数形式重载,则:

Int a,b,c;c = a + b;c = operator + (a,b);

出于某种“对称性”的考虑,一般习惯使用普通函数来重载算术运算符。 事实上,如果你不进行拷贝赋值运算符重载,系统会主动为你添加一个拷贝赋值运算符重载,就如同拷贝构造函数、析构函数那样。

对这里的 Int 类而言,其实写不写拷贝赋值,都不影响程序的运行。不过还是要求按拷贝赋值运算符重载的标准范式进行书写。

编程要求

根据提示,在右侧编辑器的Begin-End区域内补充代码。

测试说明

本关有 2 个文件,main.cpp 和 Int.h,用户需要补齐 Int.h 内的相应内容。

main.cpp 的内容如下:

#include #include "Int.h"using namespace std;int main(){Int a,b;int x;cin>>x;a.setValue(x);b = a;coutInt a;int x;cin>>x;a = x;coutint x,y;cin>>x>>y;Int a(x),b(y);a += b;coutint x,y;cin>>x>>y;Int a(x),b(y);a += b;cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3