类的operator +操作符满足交换律
例如Spreadsheetcell(单元格)
若operator +作为类的成员函数,因为operator +方法必须Spreadsheetcell对象上调用,对象必须在operator +的左边,
若遇到athirdCell= mycell+4;可以编译,但是athirdCell=4+mycell则通不过编译。
想要解决这个问题,需要通过全局的operator +
const Spreadsheetcell operator +(const Spreadsheetcell &lhs , const Spreadsheetcell& rhs)
{
Spreadsheetcell newCell;
newCell.set(lhs.mValue+rhs.mValue);
return newCell;
}
若operator +访问了Spreadsheetcell Spreadsheetcell operator +需要时Spreadsheetcell 类的友元函数;
class Spreadsheetcell
{
public :
friend const Spreadsheetcell operator +(const Spreadsheetcell &lhs , const Spreadsheetcell& rhs);
}
类的operator +操作符满足交换律相关推荐
- 类的operator new与operator delete的重载
为什么有必要写自己的operator new和operator delete? 答案通常是:为了效率. 缺省版本的operator new是一种通用型的内存分配器,它必须可以分配任意大小的内存块.同样 ...
- c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast...
C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...
- operator=、operator[]、operator()操作符重载
重载赋值运算符= 赋值运算符重载用于对象数据的复制 operator= 必须重载为成员函数 重载函数原型为:类型 & 类名 :: operator= ( const 类名 & ...
- C++高精度运算类bign (重载操作符)
大数据操作,有例如以下问题: 计算:456789135612326542132123+14875231656511323132 456789135612326542132123*14875231656 ...
- python之operator操作符函数
operator函数主要分为以下几类:对象比较.逻辑比较.算术运算和序列操作. 举例: #python 3.4 >>> operator.eq(1,2) False >> ...
- C++ operator操作符重载(++,--,-,+,())
C++中++,--操作符重载需要说明是++(--)在操作数前面,还是在操作数后面,区别如下: 代码经过测试无误(起码我这里没问题^_^) Code 1#include <iostream> ...
- C++类重载 operator()
文章目录 一.代码举例 二.重载operator()作用 三.优势 四.使用举例 1)当callback函数使用,用以通用操作 2)谓词函数 五.注意事项 一.代码举例 class ClassActi ...
- effective c++_【阅读笔记】Effective C++()
全文参考自Effective C++, Scott Meyers 程序来自本人 https://github.com/hxz1998/ccl 1. 让自己习惯C++ C++高效编程守则视状况而变化,取 ...
- 4.6 案例10 使用QList处理数据集
本案例对应的源代码目录:src/chapter04/ks04_06. 本节介绍Qt的数据处理类QList.如果要使用QList,需要包含其头文件<QList>.本案例也设计了三种编程场景对 ...
最新文章
- STM32H7的Cache和MPU
- Smarty 生成静态页
- 力扣908.最小差值Ⅰ
- Session自定义存储及分布式存储
- 如何通过“随航”将iPad用作苹果Mac的第二个显示屏?
- Arch Linux freemind中文乱码
- 浅谈-国标GB28181协议抓包内容分析(一)
- HTML创建简单动态时钟
- 关于android的外文论文,毕业论文外文翻译-Android开发
- mysql indentify_Database 中 identify relationship 和 non-identify relationship的区别
- 字符间距加宽5磅怎么设置_word的字符间距加宽1period;2磅
- css用网络图片做背景图片,css 网页背景图片 怎样用CSS实现大背景网页效果
- 计算机网络是主要的功能在于,计算机网络最基本功能之一是()。
- 2021年终总结及2022年展望
- 驾驶证学法减分助手小程序源码(带搭建视频教程)
- AHU-727 美妙音乐 【DP】
- 斗地主(按照顺序给玩家发牌)
- linux C/C++ 后端服务问题排查(gdb, pstack,valgrind)
- 七.getchar 和 scanf
- 如何将canvas转化为图片
热门文章
- 太阳同步轨道卫星 理解内容
- 【经验分享】为什么视频画面解码失败之后显示的是绿幕?
- 25岁西装男子地铁痛哭:成年人的崩溃,都是从缺钱开始的
- c语言程序关键字是什么,C语言中32个关键字详解
- j4125和n5100 哪个好
- 一个 Java 猿眼中 Vue3 和 Vue2 的差异
- vue 给取data值_vue获取data值的方式分析
- UniVL: A Unifified Video and Language Pre-Training Model for Multimodal Understanding and Generation
- Python之有趣的小程序——猜数字2.0
- matlab 中的del2函数