type
date
status
slug
summary
tags
category
icon
password
网址

重载+

常方法 重载+
总结: 运算符的重载实际是一种特殊的函数重载,必须定义一个函数,并告诉C++编译器,当遇到该重载的运算符时调用此函数。这个函数叫做运算符重载函数,通常为类的成员函数。
定义运算符重载函数的一般格式:
返回值类型 类名::operator重载的运算符(参数表) {……}
operator是关键字,它与重载的运算符一起构成函数名。因函数名的特殊性,C++编译器可以将这类函数识别出来。

重载=

在类定义中如果没有显式给出赋值运算符重载函数时,并不是不用赋值函数,而是由系统自动调用缺省的赋值函数。
拷贝构造函数 与赋值重载函数的区别。 总结: 浅赋值与深复制。 什么时候使用深拷贝和深赋值。 在类型设计中,使用动态内存或使用内核对象时,必须重新实现拷贝构造函数和赋值重载。 运算符重载函数的总结 1、运算符重载函数的函数名必须为关键字operator加一个合法的运算符。在调用该函数时,将右操作数作为函数的实参。 2、当用类的成员函数实现运算符的重载时,运算符重载函数的参数(当为双目运算符时)为一个或(当为单目运算符时)没有。运算符的左操作数一定是对象,因为重载的运算符是该对象的成员函数,而右操作数是该函数的参数。 3、单目运算符“++”和“--”存在前置与后置问题。 前置“++”格式为: 返回类型 类名::operator++(){……} 而后置“++”格式为: 返回类型 类名::operator++(int){……} 后置“++”中的参数int仅用作区分,并无实际意义,可以给一个变量名,也可以不给变量名。
4、C++中只有极少数的运算符不允许重载。
notion image
还有 # , ## , // , / * */
重载运算符有以下几种限制
不可臆造新的运算符. 不能改变运算符原有的优先级、结合性和语法结构,不能改变运算符操作数的个数. 运算符重载不宜使用过多. 重载运算符含义必须清楚,不能有二义性.