0
我有以下代碼:德爾福類變量
// irrelevant code ...
type
Zombie = class
private
...
Age : Integer;
Alive : Boolean;
TotalDeadZombies, TotalZombieAge : Double;
public
...
procedure ZombieGrow();
procedure CheckIfDead();
...
Function AvgLife() : Double;
end;
procedure Zombie.ZombieGrow();
begin
...
if (Alive = false) then
begin
TotalDeadZombies := TotalDeadZombies + 1;
TotalZombieAge := TotalZombieAge + Age;
end;
end;
procedure Zombie.CheckIfDead();
begin
if Random(100) < 20 then
Alive := False;
end;
function Zombie.AvgLife() : Double;
begin
Result := TotalZombieAge/TotalDeadZombie;
end;
我的問題是,我想顯示死殭屍的平均年齡。這將通過像這樣做:
Write('Average age '+Floattostr(Round(AvgLife)))
然而,這就是所謂的另一個類(這裏沒有顯示),並從我的OOP的理解,它需要我,如果指定一個實例化的對象,如zombies[1].AvgLife
他們被存儲在例如Zombies[]
數組中(只是一個例子)。
有沒有辦法使得變量TotalDeadZombies
和TotalZombieAge
不綁定到任何實例化的殭屍,而是一個類變量,然後我可以以某種方式調用AvgLife
?它只是簡單地把它們變成全局變量嗎?或者可以以另一種方式做到嗎?