这段程序是怎么运行的?
#include<iostream>usingnamespacestd;classInt{staticintaddtime;public:Int(intx){}frien...
#include <iostream>
using namespace std;
class Int
{
static int addtime;
public:
Int(int x) {}
friend int operator+(const Int &r1, const Int &r2)
{
return ++addtime;
}
};
int Int::addtime = 0;
int main()
{
Int a(1), b(1), c(1);
cout << a + a << endl;
cout << b + b << endl;
cout << b + c << endl;
cout << c + c << endl;
cout << a + a << endl;
} 展开
using namespace std;
class Int
{
static int addtime;
public:
Int(int x) {}
friend int operator+(const Int &r1, const Int &r2)
{
return ++addtime;
}
};
int Int::addtime = 0;
int main()
{
Int a(1), b(1), c(1);
cout << a + a << endl;
cout << b + b << endl;
cout << b + c << endl;
cout << c + c << endl;
cout << a + a << endl;
} 展开
1个回答
展开全部
追问
那输出那个a+a是什么意思
追答
因为+运算符已经被重载为operator+(Int &r1, Int &r2)
所以cout<<a+a相当于cout<<operator+(a, a)
而operator+(a, a)函数的返回值为++addtime
即返回结果只跟addtime有关,跟输入的a已经没有关系了
因此五次调用operator+()后,会依次输出addtime的值为从1到5
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询