|
> これを「演算子 + の計算の別表記」で書き表すと、いったいどうなるでしょうか。
"別の表記"って、↓コレのこと?
#include <iostream>
#include <string>
using namespace std;
class CCalc {
int val;
string name;
public:
CCalc (const string& n, int v) : name(n), val(v) {}
CCalc (int v) : name("un-named"), val(v) {}
friend CCalc operator+(const CCalc& x, const CCalc& y) {
cout << "operator+(" << x.name << ',' << y.name << ")\n";
return CCalc(x.val+y.val);
}
};
int main() {
CCalc objCalc1("one",7);
CCalc objCalc2("two", 3);
CCalc objCalc3("three",9);
cout << "case-1:\n";
CCalc objCalc = objCalc1 + objCalc2;
cout << "case-2:\n";
objCalc = objCalc1 + objCalc2 + objCalc3;
return 0;
}
|