gpt4 book ai didi

pascal - Pascal-两个不同文件之间的类继承?

转载 作者:行者123 更新时间:2023-12-03 19:28:34 24 4
gpt4 key购买 nike

说我有两个文件,characters.pasogre.pas。食人魔是一个角色,但为了干净起见,我试图将两个文件分开。在characters.pas中,我有

unit Characters;

{$mode objfpc}{$H+}

interface
type
TCharacter = class(TOBject)
private
// ...
public
// ...
published
// ...
end;

implementation
// Method bodies
end.


ogre.pas中,我有

unit Ogre;

{$mode objfpc}{$H+}

interface
type
TOgre = class(TCharacter)
public
constructor create; override;
end;


implementation

constructor TOgre.create();
begin
// Banana banana banana
end;
end.


在任何一个.pas文件中的任何位置添加 uses块都会引发错误,这使我相信依赖于继承的所有类都必须与其父类位于同一文件中。我想念什么吗?

最佳答案

是的,您错过了一些东西:use部分。您必须声明unit Ogre使用unit Characters

食人魔单位;

{$mode objfpc}{$H+}

interface

uses
Characters;

type
TOgre = class(TCharacter)
public
constructor create; override;
end;


implementation

constructor TOgre.create();
begin
// Banana banana banana
end;
end.


阅读更多:


unit example @FPC
the use of a second form @FPC wiki


还要注意,如果希望某些字段从 TCharacterTOgre可见,但仍不能从主程序访问,则必须将其可见性设置为 protected

关于pascal - Pascal-两个不同文件之间的类继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com