12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- {$MODE ObjFpc}
- uses classes;
- type
- TVector3 = packed record
- X, Y, Z: Single;
- end;
- TClassA = class
- protected
- fVector: TVector3;
- public
- procedure SetVector(AVector: TVector3); virtual; abstract;
- end;
- { TClassB }
- TClassB = class(TClassA)
- public
- procedure SetVector(AVector: TVector3); override;
- end;
- { TClassB }
- procedure TClassB.SetVector(AVector: TVector3);
- begin
- writeln('TClassB: ',AVector.X,',',AVector.Y,',',AVector.Z);
- fVector:=AVector;
- end;
- var
- MyVector: TVector3;
- MyClassB: TClassB;
- begin
- MyVector.X:=0;
- MyVector.Y:=0;
- MyVector.Z:=3;
- MyClassB:=TClassB.Create;
- MyClassB.SetVector(MyVector);
- if (MyClassB.fvector.x<>0) or
- (MyClassB.fvector.y<>0) or
- (MyClassB.fvector.z<>3) then
- halt(1);
- end.
|