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

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

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

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

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