例如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 +操作符满足交换律相关推荐

  1. 类的operator new与operator delete的重载

    为什么有必要写自己的operator new和operator delete? 答案通常是:为了效率. 缺省版本的operator new是一种通用型的内存分配器,它必须可以分配任意大小的内存块.同样 ...

  2. c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast...

    C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...

  3. operator=、operator[]、operator()操作符重载

    重载赋值运算符= 赋值运算符重载用于对象数据的复制 operator= 必须重载为成员函数 重载函数原型为:类型  &  类名  :: operator= ( const  类名 & ...

  4. C++高精度运算类bign (重载操作符)

    大数据操作,有例如以下问题: 计算:456789135612326542132123+14875231656511323132 456789135612326542132123*14875231656 ...

  5. python之operator操作符函数

    operator函数主要分为以下几类:对象比较.逻辑比较.算术运算和序列操作. 举例: #python 3.4 >>> operator.eq(1,2) False >> ...

  6. C++ operator操作符重载(++,--,-,+,())

    C++中++,--操作符重载需要说明是++(--)在操作数前面,还是在操作数后面,区别如下: 代码经过测试无误(起码我这里没问题^_^) Code  1#include <iostream> ...

  7. C++类重载 operator()

    文章目录 一.代码举例 二.重载operator()作用 三.优势 四.使用举例 1)当callback函数使用,用以通用操作 2)谓词函数 五.注意事项 一.代码举例 class ClassActi ...

  8. effective c++_【阅读笔记】Effective C++()

    全文参考自Effective C++, Scott Meyers 程序来自本人 https://github.com/hxz1998/ccl 1. 让自己习惯C++ C++高效编程守则视状况而变化,取 ...

  9. 4.6 案例10 使用QList处理数据集

    本案例对应的源代码目录:src/chapter04/ks04_06. 本节介绍Qt的数据处理类QList.如果要使用QList,需要包含其头文件<QList>.本案例也设计了三种编程场景对 ...

最新文章

  1. STM32H7的Cache和MPU
  2. Smarty 生成静态页
  3. 力扣908.最小差值Ⅰ
  4. Session自定义存储及分布式存储
  5. 如何通过“随航”将iPad用作苹果Mac的第二个显示屏?
  6. Arch Linux freemind中文乱码
  7. 浅谈-国标GB28181协议抓包内容分析(一)
  8. HTML创建简单动态时钟
  9. 关于android的外文论文,毕业论文外文翻译-Android开发
  10. mysql indentify_Database 中 identify relationship 和 non-identify relationship的区别
  11. 字符间距加宽5磅怎么设置_word的字符间距加宽1period;2磅
  12. css用网络图片做背景图片,css 网页背景图片 怎样用CSS实现大背景网页效果
  13. 计算机网络是主要的功能在于,计算机网络最基本功能之一是()。
  14. 2021年终总结及2022年展望
  15. 驾驶证学法减分助手小程序源码(带搭建视频教程)
  16. AHU-727 美妙音乐 【DP】
  17. 斗地主(按照顺序给玩家发牌)
  18. linux C/C++ 后端服务问题排查(gdb, pstack,valgrind)
  19. 七.getchar 和 scanf
  20. 如何将canvas转化为图片

热门文章

  1. 太阳同步轨道卫星 理解内容
  2. 【经验分享】为什么视频画面解码失败之后显示的是绿幕?
  3. 25岁西装男子地铁痛哭:成年人的崩溃,都是从缺钱开始的
  4. c语言程序关键字是什么,C语言中32个关键字详解
  5. j4125和n5100 哪个好
  6. 一个 Java 猿眼中 Vue3 和 Vue2 的差异
  7. vue 给取data值_vue获取data值的方式分析
  8. UniVL: A Unifified Video and Language Pre-Training Model for Multimodal Understanding and Generation
  9. Python之有趣的小程序——猜数字2.0
  10. matlab 中的del2函数