首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么友元函数不能用来重载类型转换运算符,该如何解决

2012-02-22 
为什么友元函数不能用来重载类型转换运算符为什么友元函数不能用来重载类型转换运算符[解决办法]类型转换

为什么友元函数不能用来重载类型转换运算符
为什么友元函数不能用来重载类型转换运算符

[解决办法]
类型转换函数和对象关系比较密切,而友元函数又破坏的类的封装性,要少使用,所以这个可能就是为什么吧。
[解决办法]
类型转换函数必须被定义为成员函数,
而它的第一个参数是对象本身,
也就是*this

[解决办法]
一些单目运算操作, 都是做为成员函数的.
而一些可以申明成函数的运算符, 一般是左边可以不是该类型对象.
我觉得做为成员函数这样的设计会比较好, 所以我认为规则要求一定要是成员函数, 可能是强制要求开发者保持这种方式.

但如果以不是友元的函数来看, 这种封装性比较其它的要高.

热点排行