运算符重载 – 基本概念
运算符 C++预定义表示对数据的运算
+, -, *, /, %, ^, &, ~, !, |, =, <<, >>, != ……
只能用于基本的数据类型
整型, 实型, 字符型, 逻辑型……
自定义数据类型与运算符重载 C++提供了数据抽象的手段:
用户自己定义数据类型 -- 类 调用类的成员函数
操作它的对象 类的成员函数
操作对象 时, 很不方便
在数学上, 两个复数可以直接进行+/-等运算 Vs. 在C++中, 直接将+或-用于复数是不允许的
运算符重载 对抽象数据类型也能够直接使用C++提供的运算符
程序更简洁 代码更容易理解 例如:
complex_a和complex_b是两个复数对象
求两个复数的和, 希望能直接写: complex_a + complex_b
运算符重载 运算符重载
对已有的运算符赋予多重的含义
使同一运算符作用于不同类型的数据时
不同类型的行为 目的
扩展C++中提供的运算符的适用范围, 以用于类所表示的抽象 数据类型 同一个运算符, 对不同类型的操作数, 所发生的行为不同
(5,10i) + (4,8i) = (9,18i)
5 + 4 = 9
运算符重载 运算符重载的实质是函数重载 返回值类型 operator 运算符(形参表) { …… }
运算符重载 在程序编译时:
把含 运算符的表达式 对 运算符函数 的调用
把 运算符的操作数 运算符函数的 参数
运算符被多次重载时, 根据 实参的类型 决定调用哪个运算 符函数
运算符可以被重载成普通函数
也可以被重载成类的成员函数
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.