我一直对这个问题有点好奇,但为什么在Delphi中不能为类进行运算符重载?
我记得曾经看过一个回答,它说会与某些东西发生冲突,但我记不清了。据我所知,只有隐式运算符可能会引起一些问题,因为类存储在堆上,而赋值实际上是对堆地址的复制(基本上是复制指针)。
我一直对这个问题有点好奇,但为什么在Delphi中不能为类进行运算符重载?
我记得曾经看过一个回答,它说会与某些东西发生冲突,但我记不清了。据我所知,只有隐式运算符可能会引起一些问题,因为类存储在堆上,而赋值实际上是对堆地址的复制(基本上是复制指针)。
关闭。这是因为对象是引用类型,内存是手动管理的。所以如果你写成myResult := myObject1 + myObject2 + myObject3;
,在其中需要创建一个中间对象,但没有释放它的代码,因此会出现内存泄漏。