可重载运算符/不可重载运算符
下面是可重载的运算符列表:
下面是不可重载的运算符列表:
C++规定有四个运算符 =, ->, [], ()不可以是全局域中的重载(即不能重载为友员函数) =,[],(),->只能通过成员函数来重载
C++规定赋值运算符“=”只能重载为类的非静态成员函数,而不可以重载为类的友元函数。
只要操作符的第一个参数不是当前类型的对象,就不能用友元函数重载。
如cout << vec; 因为cout是ostream对象,而不是vec所属类的对象,因此就不可能用一个成员函数实现。
任何其他情况都可以用成员函数实现,没有其他必须用友元实现的情况
重载的写法
重载输入输出运算符
在这里,有一点很重要,我们需要把运算符重载函数声明为类的友元函数,这样我们就能不用创建对象而直接调用函数
#include <iostream>
using namespace std;
class Distance
{
private:
int feet; // 0 到无穷
int inches; // 0 到 12
public:
// 所需的构造函数
Distance(){
feet = 0;
inches = 0;
}
Distance(int f, int i){
feet = f;
inches = i;
}
friend