看书的时候,发现一些不理解的地方,记录下来。
对象的关系有一种叫聚合,聚合是可以传递的:即如果A是B的一部分,且B是C的一部份,则A是C的一部分。聚合关系是反对称的。即如果A是B的一部分,那么B不是A得一部份。
Move和CopyMemory的区别:
Move在Systerm单元,定义如下
procedure Move( const Source; var Dest; count : Integer );
{$IFDEF PUREPASCAL}
var
S, D: PChar;
I: Integer;
begin
S := PChar(@Source);
D := PChar(@Dest);
if S = D then Exit;
if Cardinal(D) > Cardinal(S) then
for I := count-1 downto 0 do
D[I] := S[I]
else
for I := 0 to count-1 do
D[I] := S[I];
end;
CopyMemory在Windows单元,定义如下
procedure MoveMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
begin
Move(Source^, Destination^, Length);
end
动态数组变量 arr 本身就是指针, 不能再用 @arr 获取;
但要获取某个元素位置的指针, 应该是 @arr[x];
动态数组和静态数组首地址的区别(http://blog.csdn.net/webouse/article/details/3084684)