可重载运算符/不可重载运算符
下面是可重载的运算符列表:


下面是不可重载的运算符列表:

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 ostream &operator<<( ostream &output,
C++运算符重载与优先级解析

本文讨论了C++中运算符的重载,指出可重载与不可重载运算符的区别,强调赋值运算符只能作为成员函数重载。详细解释了输入输出运算符的重载及前置后置++的重载方法。同时,文章还探讨了运算符优先级,特别是未规定执行顺序的运算符可能导致的未定义行为,并列举了四种规定了求值顺序的运算符:逻辑与、逻辑或、条件运算符和逗号运算符。
最低0.47元/天 解锁文章
444

被折叠的 条评论
为什么被折叠?



