欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c++编程练习 015:看上去好坑的运算符重载

程序员文章站 2022-03-26 16:02:50
...

北大程序设计与算法(三)测验题汇总(2020春季)


描述

程序填空

#include <iostream> 
using namespace std;
class MyInt 
{ 
	int nVal; 
	public: 
	MyInt( int n) { nVal = n ;}
// 在此处补充你的代码
}; 
int Inc(int n) {
	return n + 1;
}
int main () { 
	int n;
	while(cin >>n) {
		MyInt objInt(n); 
		objInt-2-1-3; 
		cout << Inc(objInt);
		cout <<","; 
		objInt-2-1; 
		cout << Inc(objInt) << endl;
	}
	return 0;
}

输入
多组数据,每组一行,整数n

输出
对每组数据,输出一行,包括两个整数, n-5和n - 8

样例输入
20
30

样例输出
15,12
25,22

来源
Guo Wei


分析

objInt-2-1-3;可知减号两边类型不一致,那么容易想到重载,即

MyInt &operator-(int i){
		nVal -= i;
		return *this;
	}
int Inc(int n) {
	return n + 1;
}
cout << Inc(objInt);

由上可知,传入的objInt被强制转化成整型,那么重载int()即可,

	operator int(){return nVal;}

执行效果
c++编程练习 015:看上去好坑的运算符重载

相关标签: c++编程练习