有时当我写一个类然后测试它时,我在底部的图片中得到错误,当我尝试调试它时,编辑器显示我要访问的属性是“不可访问的值”(在构造函数令人惊讶地工作)。
上次我遇到这个问题时,我只是通过将代码复制到一个新单元并删除旧单元来解决它,所以我认为它与预编译的 .dcu 文件有关。但不幸的是,这个棘手的解决方案不适用于这个类,我做错了什么还是这是由于 Delphi 7 过时(我正在使用 Win8)造成的?
unit UVector;
interface
uses
SysUtils, Types;
type
Vector2f = class
private
x : extended;
y : extended;
public
function getX() : extended;
function getY() : extended;
constructor create(x,y : extended);
procedure add(v : Vector2f);
end;
implementation
constructor Vector2f.create(x,y : extended); // works!
begin
self.x := x;
self.y := y;
end;
procedure Vector2f.add(v : Vector2f);
begin
//inc(x, v.getX()); // compiler error : left side cannot be assigned to
//inc(y, v.gety()); // compiler error : left side cannot be assigned to
self.x := self.x + v.getX(); //inaccessible value (at runtime) for x and getX()
self.y := self.y + v.getY(); //inaccessible value (at runtime) for y and getY()
end;
function Vector2f.getX() : extended;
begin
result := x;
end;
function Vector2f.getY() : extended;
begin
result := y;
end;
end.