本文主要总结C++中类的重载运算符用法。类的重载运算符可以用于两个类相加或减之类,也就是算术运算符(+,-,*,/,%,>,<,=,!=)和其它一些已存在的运算符重载(new,[])等都可以通过重载运算符函数operatorOP()进行重载。其中OP为重载运算符(比如运算符加法+),可以在重载函数operatorOP(){}中定义要实现的方法,下面将展示加法+和乘法的运算符实例。
注意:
a1 赋值操作运算符不能被继承;
a2 算数运算符可以被继承;
一、重载函数(加法+和乘法*)原理
1.1类的加法(+)运算符重载
类加法运算符重载原理如下:
classA+classB==classA.operator+(classB);
当两个类相加时,相当于调用上述重载函数。
1.2类的乘法(*)运算符重载
其中乘法需要通过友元函数来实现,不过博主这个例子没用友元函数,是用成员函数实现。当一个整数跟类相乘即classB==10*classA,相当于调用如下重载函数:
classB==classA.operator*(10,classA);
二、定义和调用重载函数加法+和乘法*的完整实例代码
1.1添加如下代码
qoperator.h头文件
#ifndef QOPERATORCLASS_H
#define QOPERATORCLASS_H
class QOperatorClass
{
public:
QOperatorClass();
QOperatorClass operator+(const QOperatorClass &t) const;