一、Xmind整理:
二、上课笔记整理:
1.自增运算符重载
#include <iostream>
using namespace std;
class Person
{
// friend const Person operator+(const Person &L, const Person &R);
private:
int a;
int b;
public:
//无参构造函数
Person()
{
}
//有参构造函数
Person(int a, int b):a(a),b(b)
{
}
//成员函数实现 += 运算符重载
Person & operator+=(const Person &R)
{
a += R.a;
b += R.b;
return *this;
}
//成员函数实现前置 ++ 运算符的重载
Person & operator++()
{
++a;
++b;
return *this;
}
//成员函数实现后置 ++ 运算符的重载
const Person operator++(int)
{
Person temp;
temp.a = a++;
temp.b = b++;
return temp;
}
void show()
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
};
int main()
{
Person p1(10,10);
Person p2(10,10);
Person p3(5,6);
p3 += p1;
p3.show();
p1 = ++p3;
p1.show();
p3.show();
p1 = p3++;
p1.show();
p3.show();
return 0;
}
2.插入、提取运算符重载
#include <iostream>
using namespace std;
class Person
{
friend ostream & operator<<(ostream &cout , const Person &p);
friend istream & operator>>(istream &cin , Person &p);
private:
int a;
int b;
public:
//无参构造函数
Person()
{
}
//有参构造函数
Person(int a, int b):a(a),b(b)
{
}
};
//全局函数实现插入运算符重载
ostream & operator<<(ostream &cout , const Person &p)
{
cout << p.a << endl;
cout << p.b << endl;
return cout;
}
//全局函数实现提取运算符重载
istream & operator>>(istream &cin , Person &p)
{
cin >> p.a;
cin >> p.b;
return cin;
}
int main()
{
Person p1(10,10);
cout << p1 <<endl;
cout << "==================" << endl;
Person p2;
cin >> p2;
cout << p2;
return 0;
}