type
  TData = record
    A: Integer;
    B: Integer;
  end;
var
  D1, D2, D3: TData;
begin
  D1.A := 100;
  D1.B := 10;
  D2.A := 200;
  D2.B := 20;
  {
  //我希望下面这行代码有效:
  D3 := D1 + D2;//我希望执行后D3.A = 300,D3.B = 30。
  //当然,用过程或函数实现显然也是可行的,并且也不费事。
  //提出这个问题是因为被一个VC程序员噎了一把:Object Pascal能重载运算符吗?
  //俺自己查了很多资料,没有找到“能”的迹象。请各位帮忙,给出定论。
  }
end;

解决方案 »

  1.   

    Object Pascal不支持,你选错语言了。
      

  2.   

    //提出这个问题是因为被一个VC程序员噎了一把:Object Pascal能重载运算符吗?不能就不能,还比这个呢?
      

  3.   

    先从c++ builder 开始也行的。和delphi的界面风格一样,上手也比较快的。
      

  4.   

    DELPHI不支运算符的重载,从最基本的PASCAL定义中就没有这个东西。要深入理解PASCAL,看N.沃兹(PASCAL发明者,图灵奖获得者)的书《程序=算法+数据结构》
      

  5.   

    试问楼上,哪里可以买到这本书?如果有人愿意转让,俺将十分感谢!俺对Pascal的了解确实太少,特别是渊源。如果这本书中确实有“Pascal与生俱来注定不能重载运算符”的充分理由,俺愿意出原书N倍的价钱购买。
    本来俺今天准备结贴了,因为俺已经有了初步认识:
    运算符重载没有明显的优点,因此对于Object Pascal来说不算是缺憾,也没有必要提供。
    但现在听楼上这位“编程乐园”一说,仿佛Object Pascal不能重载运算符是有根本原因的。这确实让俺又糊涂了。俺一直以为,只要Borland/Inprise工程师们乐意,不要说运算符重载,就是符号(如逗号、分号等)重载都是可以实现的,只是没有这个必要罢了。
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!
    欢迎大家讨论,把这个问题搞清楚(或者说是让俺搞清楚吧)。
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  6.   

    在计算机技术飞速发展的时代,谁也不敢说明天PASCAL会把运算符重载加进来。那本书中没有运算符重载为什么不在PASCAL中的答案,它只会告诉你,PASCAL是由艺术发展而来,而C++只是一个乱糟糟的工具而已。