概述
内容: 若你为你的设计的类准备了运算函数,以实现两个类对象之间的运算,而且你同时也允许其他类型隐式转换为你设计的类的对象,那么请你将运算函数定义为non-member函数,因为这样才能使得运算符左右两侧的对象既可以是一个类对象,也可以是一个非类对象,但可以隐式转换为这种类对象的对象。
情况一:定义为成员函数
代码:
运行结果:
结果分析:如果你将你的运算函数定义为你的成员函数,那么你必须保证你的运算符左侧的对象是类对象,而不能是其他对象,尽管它可以隐式转换过来。
情况二:定义为non-member函数,但构造函数为explicit
代码:
结果:
结果:也是错误的,因为你的构造不允许隐式转换,所以这种情况下,你定义为非成员函数也是解决不了的。
情况三:定义为非成员函数,且构造函数为非explicit
代码:
结果:
甚至是两侧都不是类对象,但是是可以隐式转换成类对象的,也可以。情况如下:
结果:
分析:当你的构造函数为非explicit,且你定义了non-member函数,那么你将可以在运算符两侧使用类对象或者非类对象,但是转换成类对象的对象。你的使用将变得更加灵活。
最后
以上就是寒冷大碗为你收集整理的【博客28】若你允许类型转换后进行运算,请配合non-menber函数!!的全部内容,希望文章能够帮你解决【博客28】若你允许类型转换后进行运算,请配合non-menber函数!!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复