s******n 发帖数: 6806 | 1 最近刚开始学java,发现这个问题,
以前写C的时候,很喜欢用运算符重载, 因为基本都是科学计算。
现在任何事情都得调用函数,很不习惯。
请问支持运算符重载有什么坏处呢,为什么java抛弃了这个? |
Z*****Z 发帖数: 723 | 2 我觉得主要因为没啥好处吧
【在 s******n 的大作中提到】 : 最近刚开始学java,发现这个问题, : 以前写C的时候,很喜欢用运算符重载, 因为基本都是科学计算。 : 现在任何事情都得调用函数,很不习惯。 : 请问支持运算符重载有什么坏处呢,为什么java抛弃了这个?
|
q*********u 发帖数: 280 | 3 会和java的纯oo有些冲突。
比如一个类,重载乘号的时候,需要重载两个int n * A和A * int n
前面那个就必须脱离类A,在外面单独定义重载乘号函数,然后再在A里面搞友元,这些
都是c++灵活的地方,也是被考虑做破坏了类的封装性,和java的oo是不兼容。
应该还有其它原因,请拍砖了。
最近刚开始学java,发现这个问题,
以前写C的时候,很喜欢用运算符重载, 因为基本都是科学计算。
现在任何事情都得调用函数,很不习惯。
请问支持运算符重载有什么坏处呢,为什么java抛弃了这个?
【在 s******n 的大作中提到】 : 最近刚开始学java,发现这个问题, : 以前写C的时候,很喜欢用运算符重载, 因为基本都是科学计算。 : 现在任何事情都得调用函数,很不习惯。 : 请问支持运算符重载有什么坏处呢,为什么java抛弃了这个?
|
a**e 发帖数: 5794 | 4 因为Java号称simple,feature太多会破坏这一点。
【在 Z*****Z 的大作中提到】 : 我觉得主要因为没啥好处吧
|
s******n 发帖数: 6806 | 5 thanks,好像明白了点。
【在 q*********u 的大作中提到】 : 会和java的纯oo有些冲突。 : 比如一个类,重载乘号的时候,需要重载两个int n * A和A * int n : 前面那个就必须脱离类A,在外面单独定义重载乘号函数,然后再在A里面搞友元,这些 : 都是c++灵活的地方,也是被考虑做破坏了类的封装性,和java的oo是不兼容。 : 应该还有其它原因,请拍砖了。 : : 最近刚开始学java,发现这个问题, : 以前写C的时候,很喜欢用运算符重载, 因为基本都是科学计算。 : 现在任何事情都得调用函数,很不习惯。 : 请问支持运算符重载有什么坏处呢,为什么java抛弃了这个?
|
h*****0 发帖数: 4889 | 6 运算符重载可以满足你的偷懒的需要,但实际上坏处很多。大量的人喜欢重载运算符,
重载了之后的结果非常违反直觉。比如说a+b会改变a或者b的值……
【在 s******n 的大作中提到】 : 最近刚开始学java,发现这个问题, : 以前写C的时候,很喜欢用运算符重载, 因为基本都是科学计算。 : 现在任何事情都得调用函数,很不习惯。 : 请问支持运算符重载有什么坏处呢,为什么java抛弃了这个?
|
s***8 发帖数: 1136 | 7 too confusing, no common use case |