头歌平台:程序设计二(面向对象) |
您所在的位置:网站首页 › java中复合赋值运算符 › 头歌平台:程序设计二(面向对象) |
第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 |