IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 第五章、运算符重载 -> 正文阅读

[C++知识库]第五章、运算符重载

第五章、运算符重载

一、格式

operator是关键字,是专门用于定义重载运算符的函数的
运算符被重载后,其原有的功能仍然保留,没有丧失或改变
(1)重载为类的成员函数:
    返回类型 [类名::]operator 运算符名称(形参表){
        对运算符重载的处理;
    }

(2)重载为类的非成员函数(一般为友元函数):
    friend 返回类型 operator 运算符名称(形参表){
        对运算符重载的处理;
    }
    友元函数没有this指针,需给出所有传递参数
    若使用单目运算符且修改成员数据,需使用引用传递
(3)
一般单目运算符重载为类的成员函数,双目运算符重载为类的友元函数
=,(),[],->双目运算符不能重载为类的友元函数
>>和<<只能重载为类的友元函数

二、运算符重载的规则

1、C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载

2、C++不能重载的运算符:

.成员访问运算符
*成员指针访问运算符
::域运算符
sizeof长度运算符
?:条件运算符

3、重载不能改变运算符运算对象(即操作数)的个数

4、重载不能改变运算符的优先级

5、重载不能改变运算符的结合性:=是右结合性(自右向左)

6、重载运算符的函数不能有默认的参数

7、重载运算符必须和用户定义的自定义类型的对象一起使用,其参数至少应该有一个是类对象

8、用于类对象的运算符一般必须重载,但是有两个例外,运算符“=”和“&”不必用户重载

三、前缀和后缀运算符

1、前缀运算符:++i、–i

类名 operator++();

2、后缀运算符:i++、i–

类名 operator++(int x);//int x为哑元参数,仅表示重载后缀运算符

四、重载流插入运算符和流提取运算符

(1)输入流类istream,输出流类ostream,cin和cout分别是istream,ostream的对象
(2)
class Complex{
	public:
		friend ostream& operator<<(ostream&,Complex&);
		friend istream& operator>>(istream&,Complex&);
	private:
	double real;
	double imag;
}
ostream& operator<<(ostream &out.Complex &c){
	out<<c.real<<"+"<<c.imag<<endl;
	return out;
}
istream& operator>>(istream &in,Complex &c){
	in>>c.real>>c.imag;
	return in;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:03:43  更:2021-09-29 10:04:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 3:42:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码