为什么要有运算符重载?
一些用于自定义类型,编译器不知道如何进行类型的运算。
运算符重载的本质是函数。
用两种方法实现运算符重载:
1、重载为成员函数,解释为:ObjectL.operator op(ObjectR),左边操作数ObjectL通过this指针传递,右操作数由参数Object传递
2、重载为友员函数,解释为:operator op(ObjectL,ObjectR),左右操作数都有参数传递
二元操作符,复数类举例子:
#include<iostream>
#include<cstdio>
using namespace std;
class Complex {
friend Complex operator+(Complex &c1, Complex &c2);//友元函数实现运算符重载
public:
Complex() {
this->a = 0;
this->b = 0;
}
Complex(int a, int b) {
this->a = a;
this->b = b;
}
Complex operator+

本文探讨了C++中运算符重载的必要性,它允许自定义类型支持标准运算符。运算符重载可通过成员函数和友元函数两种方式实现。举例介绍了复数类中二元运算符的使用,以及一元运算符前置++和后置++的重载。尽管成员函数可以完成运算符重载,但友员函数在特定场景下有其独特优势,文章将展示这些应用场景。
最低0.47元/天 解锁文章
9097





