运算符重载

1.声明与定义可以类比与成员函数。

//声明bool operator >=(参数列表);//定义bool 类名:: operator >=(参数列表);

2.重载后三不变。
a.
运算符结合性不变。
b.
运算符操作数与运算顺序不变。
c.
不能为基本数据类型重载运算符。

3.不能重载的运算符
成员访问符".",成员指针运算符 “*”,
域运算符“::”,条件运算符“?”,sizeof运算符。

运算符重载方式

1.类的成员函数。
2.类的友元函数。

小细节
1.如果运算符重载为类的成员函数,则必须通过对象来调用。

a.
单目运算符重载为类的成员函数时,要去范围内前置运算符与后置运算符。
b.
如果是前置则运算符重载没有参数
c.
后置则需要带一个整型参数,*但该参数不起任何作用,用来标志)

int operator ++();//前置函数
int operator ++(int);//后置函数


2.若运算符的左操作数不是当前累的对象,那只能声明为友元函数。

3.双目运算符通常重载为类的成员函数。

4.必须重载为类的成员函数的运算符:
“=”, “[ ]”, “( )”, “->”,

5.必须重载为类的友元函数的运算符:
“<<”, “>>”

运算符重载(c++细节篇二)相关推荐

  1. 运算符重载、STL模板库、类型转换、异常处理机制(C++五)

    目录 一.运算符重载 1. 引入运算符重载 2.语法格式 3.运算符重载有两种表现形式 4.运算符重载分类 5.运算符重载的特点: 二.C++中的STL模板库的使用 1.容器类(container) ...

  2. 第十二周项目二-Time类中的运算符重载

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月24日*版 本 号:v1. ...

  3. c++远征之模板篇——运算符重载

    以下内容源于慕课网的学习整理,如有侵权,请告知删除. 一.运算符重载的概念 给原有的运算符赋予新的功能. 比如下面的截图,本来加号+并不具备坐标的相加的功能,但是通过运算符重载可以实现该功能. 二.运 ...

  4. 面向对象程序设计上机练习十二(运算符重载)

    面向对象程序设计上机练习十二(运算符重载) Time Limit: 1000MS  Memory Limit: 65536KB Submit  Statistic Problem Descriptio ...

  5. 新标准C++(郭炜)第四章细节问题小结(1):运算符重载(一)

    一.运算符重载的概念和原理(P65-P66) 运算符重载的目的:使得C++中的运算符也能用来操作对象. ---------------->运算符重载的实质是编写以运算符作为名称的函数 运算符函数 ...

  6. C++ 学习 ::【基础篇:17】:C++ 类与对象:运算符重载介绍、运算符重载函数(类内与类外区别)写法及简单设计实现

    本系列 C++ 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C++ 学习系列将分为三个阶段:基础篇.STL 篇.高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C++的三大特 ...

  7. c++中运算符重载方式中你易遗漏的小细节

    运算符重载函数相当于类来说有两种存在方式: 1.重载为类的成员函数. 2.重载为类的友元函数. 重载为类的成员函数. 如果把运算符重载为类的成员函数,则该函数么须通过对象调用,该对象就是运算符的其中一 ...

  8. c++运算符重载中很多人易忘的小细节

    运算符重载的基本格式 运算符重载的本质就是函数重载 类型说明符 operator 运算符 (参数列表) { 函数体://实现运算符功能的代码. } 如果把 operator运算符"看作一个整 ...

  9. C++ 类和对象(二):构造函数、析构函数、拷贝构造函数、运算符重载

    构造函数 析构函数 拷贝构造函数 运算符重载 class Date {}; 可以看到,上面那个类没有任何成员,是一个空类,但是它真的什么都没有吗?其实一个类在我们不写的情况下,都会生成6个默认的成员函 ...

最新文章

  1. 总是多次出现 那个同样的 权限错误 _storage_write_error_, 所以一开始就把机器设好setenforce 0...
  2. 进程间通信(一)管道
  3. Leetcode 739. 每日温度 (每日一题 20211014)
  4. iphone6s无4g显示无服务器,iPhone 6S无信号,镇定修复显现4G
  5. 如何在64位的Linux中运行32位的应用程序
  6. 转:json与map互转
  7. trailmakers未能连接服务器,Trailmakers联机版
  8. 每天一个实用小技巧!教你在Mac上快速输入长文本
  9. c语言求偶数的积,《动物的多*语言》阅读理解及*
  10. 在源文件(.c)和头文件(.h)中声明和定义的区别——C语言
  11. 开放源代码_开放式代码本质的10种方式
  12. 对称加密算法之Java SM4算法应用 附可用工具类
  13. linux查看内存条pn,查看电脑内存条型号的两种方法【图文】
  14. 【Python】利用MD5文件去重
  15. html基本标记练习钱塘湖春行,《钱塘湖春行》练习题及答案
  16. 计算机保持在线的几种方法,还在为智能盒子上电影软件收费烦恼?教你几个盒子上看大片的方法...
  17. 辐射76 服务器离线维护,如果能有离线模式 完善《辐射76》的9种方法
  18. 权限系统的设计模式 ACL RBAC ABAC
  19. java 固定电话_Java正则表达式验证固定电话号码符合性
  20. 知识图谱推理思维导图

热门文章

  1. Angular CLI版本问题(Your global Angular CLI version (12.2.7) is greater than your local version (9.0.3))
  2. 深入浅出python机器学习_4.3.1_岭回归的原理 4.3.2_岭回归的参数调节
  3. List集合、常用数据结构基本了解
  4. free 命令查看linux的内存使用情况
  5. linux java调用so文件路径_Linux平台Java调用so库-JNI使用例子
  6. python多线程库_Python多线程常用包对比
  7. java中改变字符串编码
  8. Springboot中实现文件上传功能
  9. arraylist线程安全吗_java集合----超详细图解(ArrayList线程安全解决三种解决方法!)...
  10. java 自定义tostring_Java 怎么写这个自定义class的toString方法?