c++远征之模板篇——运算符重载
以下内容源于慕课网的学习整理,如有侵权,请告知删除。
一、运算符重载的概念
- 给原有的运算符赋予新的功能。
- 比如下面的截图,本来加号+并不具备坐标的相加的功能,但是通过运算符重载可以实现该功能。
二、运算符重载的本质
- 本质是函数的重载;
- 重载方式:友元函数重载、成员函数重载。即定义成一个类的友元函数,或者成员函数。
三、运算符重载的关键字operator
1、一元运算符重载
负号的重载
(1)成员函数重载
- 虽然它不含有参数,但是它作为普通的成员函数,还是有一个隐性的this指针作为参数的。
- 函数返回应该是它本身(只是成员取反了而已),因此应该是返回值是“类&”的形式。
- 注意到它也是一个函数,因此有两种方式表示。
(2)友元函数重载
- 需要传入参数
++符号的重载
(1)前置++符号重载
- 下面是成员函数重载的形式
(2)后置++符号重载
- 返回值不再是引用,而是一个对象。为什么呢?
- 传入int,标明++符号是后置的而已,没有其他用途。
2、二元运算符重载
加号运算符的重载
(1)成员函数重载形式
(2)友元函数重载形式
输出运算符的重载
- 采用友元函数重载的方式,不能采用成员函数重载的方式。
索引运算符的重载 [ ]
- 索引运算符不能使用友元函数重载的方式,只能用成员函数重载的方式
c++远征之模板篇——运算符重载相关推荐
- 10-C++远征之模板篇-学习笔记
C++远征之模板篇 本文及代码收录于个人编程笔记(整理中,欢迎Star): https://github.com/mtianyan/Programming-Notebook 将会学到的内容: 模板函数 ...
- 类模板与运算符重载(一个简单的例子)
类模板与运算符重载(一个简单的例子) 标签(空格分隔): C++ 算法竞赛 下面是一段简单的代码,表示我们建立了一个类模板Vector,可以看做是对STL中vector的简单实现. 为了让这个Vect ...
- c++远征之模板篇——函数模板、类模板
以下内容源于慕课网的学习整理,如有侵权,请告知删除. 函数模板(vs模板函数) 1.为什么需要模板? 函数体相同,只是类型不一样而已. 那么能否把数据的类型当做参数传递呢?肯定是可以的,这是模板. 2 ...
- c++远征之模板篇——标准模板库(STL)
以下内容源于慕课网的学习整理,如有侵权,请告知删除. 常见的设计模板 1.vector,向量 (1)本质是对数组的封装: (2)能够在常数时间内完成读取: (3)定义的方法 (4)vector的常用函 ...
- c++远征之模板篇——静态数据成员,静态成员函数
以下内容源于慕课网的学习整理,如有侵权,请告知删除. 1.静态数据成员 (1)不同于普通的数据成员,静态数据成员在没有实例化时,它也是存在的(即它是和类共存的): (2)它一般不依赖于构造函数的初始化 ...
- c++远征之模板篇——友元函数、友元类
以下内容源于慕课网的学习整理,如有侵权,请告知删除. 一.友元函数 1.分类 全局函数-->友元全局函数 成员函数-->友元成员函数 2.关键字friend 友元全局函数 如下,利用fri ...
- 智能指针:-和*运算符重载 + 模板技术 实现智能指针(C++)
智能指针介绍 在C++中,我们都知道在堆区new 开辟的内存,必须通过delete 进行内存释放,不然会形成内存泄漏.有时候我们使用了new 后在 写了很多代码,忘记delete 也是很正常的.那么我 ...
- 笔记②:牛客校招冲刺集训营---C++工程师(面向对象(友元、运算符重载、继承、多态) -- 内存管理 -- 名称空间、模板(类模板/函数模板) -- STL)
0618 C++工程师 第5章 高频考点与真题精讲 5.1 指针 & 5.2 函数 5.3 面向对象(和5.4.5.5共三次直播课) 5.3.1 - 5.3.11 5.3.12-14 友元 友 ...
- 运算符重载、STL模板库、类型转换、异常处理机制(C++五)
目录 一.运算符重载 1. 引入运算符重载 2.语法格式 3.运算符重载有两种表现形式 4.运算符重载分类 5.运算符重载的特点: 二.C++中的STL模板库的使用 1.容器类(container) ...
最新文章
- keras 多个显卡
- 32款iOS开发插件和工具介绍[效率]
- 腾讯校招历年经典面试汇总:C++研发岗
- 软件工程 Beta 阶段 团队贡献分数
- JAVA设计一个电视机类_漫谈Java程序设计中的接口应用
- Google Map API运行提示Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
- centos 图形模式与命令行模式设置
- mysql分级建表_Mysql如何使用命令实现分级查找帮助详解
- 我来告诉你,草根程序员如何进入BAT
- 快点射!(Swift Injection) 不带这样的!
- 荣达嵌入式打印机打印效果
- 一款功能强大的Web接口和网页测试工具
- 【SpringBoot】Error creating bean with name ‘methodValidationPostProcessor‘ defined in class path reso
- 教会微信:突破文件发送100M限制
- C语言中的fgets函数
- 在线创建LaTeX表格的方法
- 冲量在线要做数据流通基础设施服务商
- 基于51单片机的温控系统
- 理解图像卷积操作的意义
- Arduino Pro Micro问题汇总