无操作重载时01:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Complex {
public:
Complex(int a, int b) {
this->a = a;
this->b = b;
}
void printComplex() {
cout << "(" << this->a << "," << this->b << ")" << endl;
}
friend Complex complexAdd(Complex &c1, Complex &c2);
private:
int a;
int b;
};
Complex complexAdd(Complex &c1, Complex &c2) {
Complex temp(c1.a + c2.a, c1.b + c2.b);
return temp;
}
int main() {
Complex c1(1, 2);
Complex c2(2, 4);
c1.printComplex();
c2.printComplex();
Complex c3 = complexAdd(c1, c2);
c3.printComplex();
return 0;
}
无操作重载时02:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Complex {
public:
Complex(int a, int b) {
this->a = a;
this->b = b;
}
void printComplex() {
cout << "(" << this->a << "," << this->b << ")" << endl;
}
Complex complexAdd(Complex &another) {
Complex temp(this->a + another.a, this->b +another.b);
return temp;
}
private:
int a;
int b;
};
int main() {
Complex c1(1, 2);
Complex c2(2, 4);
c1.printComplex();
c2.printComplex();
Complex c3 = c1.complexAdd(c2);
c3.printComplex();
return 0;
}
操作符重载写在全局
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Complex {
public:
Complex(int a, int b) {
this->a = a;
this->b = b;
}
void printComplex() {
cout << "(" << this->a << "," << this->b << ")" << endl;
}
friend Complex operator+(Complex &c1, Complex &c2);
private:
int a;
int b;
};
//操作符重载写在全局
Complex operator+(Complex &c1, Complex&c2) {
Complex temp(c1.a + c2.a, c1.b + c2.b);
return temp;
}
int main() {
Complex c1(1, 2);
Complex c2(2, 4);
c1.printComplex();
c2.printComplex();
Complex c3 = c1 + c2;
//或则:Complex c3 =operator+( c1 + c2);
c3.printComplex();
return 0;
}
操作符重载写在类内
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Complex {
public:
Complex(int a, int b) {
this->a = a;
this->b = b;
}
void printComplex() {
cout << "(" << this->a << "," << this->b << ")" << endl;
}
//操作符重载写在类内
Complex operator+(Complex &another) {
Complex temp(this->a + another.a, this->b + another.b);
return temp;
}
private:
int a;
int b;
};
int main() {
Complex c1(1, 2);
Complex c2(2, 4);
c1.printComplex();
c2.printComplex();
Complex c3 = c1 + c2;//c1.operator+(c2)
c3.printComplex();
return 0;
}