吴 吴联银 Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-21 #1 c++中操作符重载十分方便,但delphi好象不支持。请问,有手段解决吗?否则,诸如向量、矩阵运算等问题将十分麻烦,请高手指点。如果有向量、矩阵运算等数学库,望能提供,帮小弟一把。谢谢! e_mail:wulianyin@263.net
c++中操作符重载十分方便,但delphi好象不支持。请问,有手段解决吗?否则,诸如向量、矩阵运算等问题将十分麻烦,请高手指点。如果有向量、矩阵运算等数学库,望能提供,帮小弟一把。谢谢! e_mail:wulianyin@263.net
J Jams Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-21 #2 Turbo Pascal 6.0 关于OOP技术就支持操作符重载,当然Delphi也应支持,只不过 方法不对吧?
S SeaSky Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-21 #3 Jams, 你记错了吧. 吴联银 : 用函数代了吧. 例如 c:=A+b 你只有用 C:= Add(A,B); 不知道Delphi 5中有没有操作符重载, 好在 delphi 4 支持同名函数重载. 你可同时声明 Function Add(const A,b : Type1) :Type1 Function Add(const A,b : Type2) :Type2 Function Add(const A,b : Type3) :Type3 Delphi 会根据不同的数据类型选择不同的Add函数. 我想这个并不麻烦.
Jams, 你记错了吧. 吴联银 : 用函数代了吧. 例如 c:=A+b 你只有用 C:= Add(A,B); 不知道Delphi 5中有没有操作符重载, 好在 delphi 4 支持同名函数重载. 你可同时声明 Function Add(const A,b : Type1) :Type1 Function Add(const A,b : Type2) :Type2 Function Add(const A,b : Type3) :Type3 Delphi 会根据不同的数据类型选择不同的Add函数. 我想这个并不麻烦.
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-22 #4 cj, 好象要加上overload关键字才能实现重载吧? Function Add(const A,b : Type1) :Type1 Function Add(const A,b : Type2) :Type2 overload; Function Add(const A,b : Type3) :Type3 overload;
cj, 好象要加上overload关键字才能实现重载吧? Function Add(const A,b : Type1) :Type1 Function Add(const A,b : Type2) :Type2 overload; Function Add(const A,b : Type3) :Type3 overload;
P pegasus Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-22 #5 Delphi 5也不支持操作符重载, 实际上操作符重载之后经常会引起混乱, 也会降低编译器的效率 关于操作符重载引起混乱的例子我有一个教训如下: 这个例子是Visual C++写的: CString是VC里面一个很好用的字符串类, 支持+号的重载, 可以在字符串后面加上自负, 字符串, CString对象等等。 下面是一段代码: CString strResult, strTest; strTest = "Everything"; strResult = '/n' + strTest + " is ok." //前面添了一个空行 结果是: strResult中有字符串: “Everything is ok." 后来因故不再需要中间变量strTest, CString strResult; strResult = '/n' + "Everything is ok."; 结果是什么? (呵呵, 是" ok.");
Delphi 5也不支持操作符重载, 实际上操作符重载之后经常会引起混乱, 也会降低编译器的效率 关于操作符重载引起混乱的例子我有一个教训如下: 这个例子是Visual C++写的: CString是VC里面一个很好用的字符串类, 支持+号的重载, 可以在字符串后面加上自负, 字符串, CString对象等等。 下面是一段代码: CString strResult, strTest; strTest = "Everything"; strResult = '/n' + strTest + " is ok." //前面添了一个空行 结果是: strResult中有字符串: “Everything is ok." 后来因故不再需要中间变量strTest, CString strResult; strResult = '/n' + "Everything is ok."; 结果是什么? (呵呵, 是" ok.");
L liyin Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-22 #6 Delphi支持函数重载,用overload关键字,如Another_eYes所示,好象不支持操作 符重载,另外Delphi4.0支持多态性,不知Delphi5.0在面向对象方面又有什么新的 改进。
吴 吴联银 Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-25 #7 多谢各位大虾的指点!不过好象依然没有解决我所提出的问题————操作符重载!! Another_eYes大虾提出的方案当然是一种解决办法,但是用起来很不方便,尤其是对于表达式非常长的时候,不得不引入一些中间变量,仅仅停留在函数重载的层次。 不知哪位大虾对Delphi 5有研究,敢问在Delphi 5中有操作符重载吗?,
多谢各位大虾的指点!不过好象依然没有解决我所提出的问题————操作符重载!! Another_eYes大虾提出的方案当然是一种解决办法,但是用起来很不方便,尤其是对于表达式非常长的时候,不得不引入一些中间变量,仅仅停留在函数重载的层次。 不知哪位大虾对Delphi 5有研究,敢问在Delphi 5中有操作符重载吗?,
P pegasus Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-27 #8 解决问题有两个方面:我们给你的否定的回答也是对问题的解决呀!:) Pascal语言为了高效实现而简化了C++中的许多东西,我觉得C++已经被弄 得太。。。了
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-21 #10 eYes:管CJ什么事?我没说呀?既然你说了,我就给个答案: 不支持操作符重载! 方法异构在D4中有支持,D4的另外新特性包括动态数组,还有一个忘记了,呵呵
O onedolph Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-21 #11 什么好象不支持,肯定地,不支持。所以c++和delphi是各有千秋啊,我以前是用 c++,现在是用delphi,感觉c++就是比delphi稍胜一筹。
D DNChen Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-22 #12 支持pegasus的说法,我不喜欢操作符重载,没什么很大的意义,却会降低性能
O onedolph Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-22 #13 虽然会降低编译器的编译速度,但可以增加可读性,而且很灵活,我喜欢C++的操作符重载。
Y yanghaijun Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-23 #14 你最好别在DELPHI中打这个主意,DELPHI之所以优秀,就是因为它结合了PASCAL与 面向对象的优点,同时对面向对象中的一些东西进行了简化。若你一定要使用重载 操作符,试一下C++BUILDER算了,这正如你让DELPHI去搞多重继承一样,何必呢?
你最好别在DELPHI中打这个主意,DELPHI之所以优秀,就是因为它结合了PASCAL与 面向对象的优点,同时对面向对象中的一些东西进行了简化。若你一定要使用重载 操作符,试一下C++BUILDER算了,这正如你让DELPHI去搞多重继承一样,何必呢?
N NightOwl Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-28 #15 C++有C++的优点,Delphi有Delphi的好处。 算术符重载在C++里是一个优点,也是一个缺点。简化了 程序,却增加了编译的麻烦。 Delphi中不支持算术符重载,这是毫无疑问的。但可以有 变通的方法。
C++有C++的优点,Delphi有Delphi的好处。 算术符重载在C++里是一个优点,也是一个缺点。简化了 程序,却增加了编译的麻烦。 Delphi中不支持算术符重载,这是毫无疑问的。但可以有 变通的方法。
P pegasus Unregistered / Unconfirmed GUEST, unregistred user! 1999-08-29 #16 我觉得可读性并没有因为操作符的重载而有什么很大的改变,个人感觉 不过我用C++的时候有时候就会用到它,(既然有了,不用白不用, 然而用的时候可读性常常不但没有提高反而略有下降,可能是因为我的 程序从来都没有涉及到专业的数学领域中,+, - * / = 等等本来数学 意义就没有多少,所以重载了之后没有什么可读性的提高, 注意程序简短了并不意味着可读性的提高
我觉得可读性并没有因为操作符的重载而有什么很大的改变,个人感觉 不过我用C++的时候有时候就会用到它,(既然有了,不用白不用, 然而用的时候可读性常常不但没有提高反而略有下降,可能是因为我的 程序从来都没有涉及到专业的数学领域中,+, - * / = 等等本来数学 意义就没有多少,所以重载了之后没有什么可读性的提高, 注意程序简短了并不意味着可读性的提高
L lwlnic Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-09 #17 在数学领域编程的话,如果能够进行操作符重载,用起来的确是不错的。这时用C++ 就是的啦,何必用DELPHI。
W WuWZY Unregistered / Unconfirmed GUEST, unregistred user! 1999-09-10 #19 C++的OOP机制过于烦杂,Delphi虽有许多与C++类似之处,但已经去掉了如操作符重载等易引起混乱的机制。Java语言也是如此,而且还去掉了全局变量......使之更加简洁。所以我觉得操作符重载没有必要。
C++的OOP机制过于烦杂,Delphi虽有许多与C++类似之处,但已经去掉了如操作符重载等易引起混乱的机制。Java语言也是如此,而且还去掉了全局变量......使之更加简洁。所以我觉得操作符重载没有必要。
X xlpan Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-21 #20 关于复数运算,倒是在Delphi Forever 可以找到TComplex控件,是用2.0版本写的,没有源代码。我很想利用,却装不成功,如果你能够装载成功,请转告我一下。