运算符重载+
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class person {
private:
int a;
public:
person(int a) {
this->a = a;
}
person& operator+ (const person &p) {
person p3(this->a+p.a);
return p3;
}
int geta() {
return a;
}
};
void test() {
person p1(10), p2(20);
person p3 = p1 + p2;
cout << p3.geta() << endl;
}
int main()
{
test();
}
<<
运算符<<重载
cout
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class person {
friend ostream& operator<<(ostream& cout, const person &p);
private:
int age;
public:
person(int age) {
this->age = age;
}
};
ostream& operator<<(ostream &cout,const person &p) {
cout << p.age;
return cout;
}
void test() {
person p1(10);
cout << p1 << endl;
}
int main()
{
test();
}
前置++和后置++
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class person{
friend ostream& operator<<(ostream& cout,const person& p);
friend void test();
private:
int age;
public:
int test;
person(int age) {
this->age = age;
}
int get_age() {
return age;
}
person& operator++() {
++this->age;
return *this;
}
const person operator++(int) {
person p(this->age);
++*this;
return p;
}
};
ostream& operator<<(ostream &cout,const person& p) {
cout << p.age;
return cout;
}
void test() {
person p1(10);
cout << ++(++p1) << endl;
cout << p1++ << endl;
cout << p1 << endl;
}
int main()
{
test();
}