读书笔记_Effective_C++_条款二十四: 若所有参数皆需类型转换,请为此采用non-member函数...
class A { private:int a; public:A(int x) :a(x){}A operator*(const A& x){return A(a*x.a);} };int main() {A a(2);A b = a*a;//没有问题A b = a * 2;//由于构造函数没有explicit,这里隐式转换了,也没有问题A b = 2 * a;//出问题了 }
老师讲过,一种是类的member函数,一种是non-member函数,
但我们为了封装性,尽量不适用friend,我们可以通过修改类的接口来使用数据
class A { private:int a; public:A(int x) :a(x){}int get_a()const { return a; }void display(){cout << a << endl;} };const A operator*(const A& a, const A& b)//注意这里写了const {return A(a.get_a()*b.get_a()); }
转载于:https://www.cnblogs.com/vhyc/p/5598475.html
读书笔记_Effective_C++_条款二十四: 若所有参数皆需类型转换,请为此采用non-member函数...相关推荐
- 读书笔记_Effective_C++_条款十九:设计class犹如设计type
这里初看到"class"和"type",感觉他们是说的是同一样东西,但仔细读了一下,两者在文中还是有区别的.class侧重于自定义的类,而type侧重于系统预定 ...
- 读书笔记_Effective_C++_条款七:为多态基类声明virtual析构函数
严格来说,多态分为编译时多态和运行时多态,编译时多态是函数的重载,而运行时多态则是迟绑定技术,即根据基类指针或引用的实际指向来决定采取何种行动,一般来说,多态特指运行时多态.下面我们来举有关C++多态 ...
- 读书笔记_Effective_C++_条款三十一:将文件间的编译依存关系降至最低(第二部分)...
下面再来看书,去理解书上说的Handler classes就简单多了,我们大概过一下. 假设我们要写一个Person类,如下: 1 class Person 2 { 3 private: 4 stri ...
- 【读书笔记】《视觉SLAM十四讲(高翔著)》 第13讲
文章目录 工程文件一:dense_monocular(单目稠密地图) 工程文件二:dense_RGBD(点云地图 & 八叉树地图) 本博客的内容是本章程序编译运行方法,记录调通本章程序的过程. ...
- 读书笔记_CLR.via.c#第十四章_字符,字符串和文本处理
对象初始化器 类 简单定义的类 类的构造函数 类的应用 嵌套的对象初始化器 集合初始化器 类型推理 Var myvar = 5; 匿名类型 动态查找
- python 拉普拉斯锐化_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化
时间为友,记录点滴. 我们已经了解过了梯度(一阶微分)的作用,那么为什么要引入二阶微分呢?二阶微分的作用是什么? 还是看图说话: 很明显,一阶微分已经可以把轮廓辨识出来,但是,对于变化较缓的地方,一阶 ...
- matlab拉普拉斯算子边缘提取_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化...
时间为友,记录点滴. 我们已经了解过了梯度(一阶微分)的作用,那么为什么要引入二阶微分呢? 二阶微分的作用是什么? 还是看图说话: 很明显,一阶微分已经可以把轮廓辨识出来,但是,对于变化较缓的地方,一 ...
- Visual.C#.2010从入门到精通].(Visual.C#.2010.Step.By.Step)读书笔记 属性、字段(十四)
可以单独指定get.set的访问权限:
- matlab火星漫游车转向控制,OSG开发笔记(二十四):OSG漫游之平移与转向
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/ ...
最新文章
- 基于OpenCV实现口罩识别
- 无法进入一个空框_win10电脑开机进入不了系统如何解决?
- MIT:睡眠不足会让你连路都走不好,但补觉还有救
- 外链对网站SEO优化起什么作用?
- 多云战略未来五大趋势分析,必看!
- 不定位成一个连接者,家装公司进军智能装饰的所有姿势都是错的
- nhibernate many-to-one 没有匹配项时的异常
- Win10下VS2015(WDK10)驱动开发环境配置
- 免费讲座:数据库工程实施中的性能保证
- SQL大圣之路笔记——SQL 行转列,列转行
- Unity 接入科大讯飞语音sdk
- MATLAB多算法进行图像去雾处理
- 机器翻译模型简介(一)
- 【BUG】Python3|爬虫请求得到的json中的值全是问号
- 【思维导图】如何做思维导图
- 关于零基础入门金融风控挑战赛的笔记系列
- 自学前端应该如何入门
- 计算机网络期末冲刺复习
- 不借助工具清除Windows7密码
- 【STM32学习笔记】(14)——独立看门狗(IWDG)详解
热门文章
- JAVA反射系列之Method,java.lang.reflect.Method的使用。
- NGINX 发布影响LDAP 实现的0day 缓解措施
- PPP 守护进程 RCE 漏洞已存在17年,可控制几乎所有的 Linux 系统
- 从BMW Vision iNEXT 看宝马如何进军自动驾驶 1
- 三分钟快速理解javascript内存管理
- 安装labelImg
- WDS部署服务所用的PXE引导文件
- 阿里云云中沙箱自助实验-从Gitlab数据库被删看数据备份的重要性!
- transform()
- 【简报】超棒的免费Web字体服务:Adobe Edge Web字体