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;
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;
本来俺今天准备结贴了,因为俺已经有了初步认识:
运算符重载没有明显的优点,因此对于Object Pascal来说不算是缺憾,也没有必要提供。
但现在听楼上这位“编程乐园”一说,仿佛Object Pascal不能重载运算符是有根本原因的。这确实让俺又糊涂了。俺一直以为,只要Borland/Inprise工程师们乐意,不要说运算符重载,就是符号(如逗号、分号等)重载都是可以实现的,只是没有这个必要罢了。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
欢迎大家讨论,把这个问题搞清楚(或者说是让俺搞清楚吧)。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!