操作符重载的位置选择(选择成员或非成员)

1.赋值(=),下标([]),调用( () )和成员访问箭头(->)等操作符必须定义为成员,将这些定义为非成员函数将在编译时标记为错误

2.像赋值一样,复合赋值操作符通常应定义为类的成员,与赋值不同的是,不一定非得这样做,如果定义非成员复合赋值操作符,不会出现编译错误.
3.改变对象状态或与给顶类型紧密联系的其他一些操作符,如自增,自减和自解引用,通常应定义为类成员
4.对称的操作符号,如算术操作符,相等操作符,关系操作符和位操作符,最好定义为普通非成员函数.

你可能感兴趣的:(操作符重载的位置选择(选择成员或非成员))