本节大意
介绍了重载操作符的一般方法和选取原则。
细节摘录
1. 重载操作符的本质是具有特殊名字的函数
2. 重载操作符必须有一个类或枚举操作类型
3. 优先级固定性是不能变的
4. 了解哪些适合重载,用哪种机制重载。
课后习题
4. 前两个是内置版本,最后一个是重载版本。
5. 一些一元的操作符以及复合赋值操作符。
6. abcegh要,其他的不要。因为我们的原则是重载类没有的,且内置类型有的。
介绍了重载操作符的一般方法和选取原则。
细节摘录
1. 重载操作符的本质是具有特殊名字的函数
2. 重载操作符必须有一个类或枚举操作类型
3. 优先级固定性是不能变的
4. 了解哪些适合重载,用哪种机制重载。
课后习题
1. 操作数规则不同的时候就不同,否则相同。
2. 本题改成为我自己的一个类定义重载声明,如下:
#include <iostream>
using namespace std;
class A {
public:
friend ostream& operator<<(ostream& os, const A a);
A(){
m=0;
n=0;
}
A& operator=(const A& a);
private:
int m;
int n;
};
A&
A :: operator=(const A& a) {
this->m = a.m;
this->n = a.n;
return *this;
}
ostream&
operator<<(ostream &os, const A a) {
os << a.m << " ";
os << a.n << endl;
return os;
}
int main()
{
A a;
A b;
cout << a << endl;
cout << b << endl;
a = b;
cout << a;
return 0;
}
3. 编译将不通过
4. 前两个是内置版本,最后一个是重载版本。
5. 一些一元的操作符以及复合赋值操作符。
6. abcegh要,其他的不要。因为我们的原则是重载类没有的,且内置类型有的。