gpt4 book ai didi

delphi - 嵌套类中的成员无法访问 - 为什么?

转载 作者:行者123 更新时间:2023-12-03 15:17:37 25 4
gpt4 key购买 nike

TTest= class
public abc:Integer;
type
TTest2 = class
procedure test;
end;
end;

procedure TTest.TTest2.test();
begin
abc:=5; //'Inaccessible here'
end;

我收到“此处无法访问实例成员 abc”。

情况很严重。我必须使用线程,但由于 TThread 是抽象的,所以自己的类应该继承它。就我而言,需要线程的类已经继承了另一个不能继承 TThread 的类......所以这是不可能的。我的场景是继承 TThread 的嵌套类,下面我声明它。但是 Execute();方法必须使用其父类的成员。

我该怎么做?为什么会出现这个错误?

最佳答案

内部类就是这样:一个单独的类。只有它的名称范围嵌套在父类内部。您可以构造内部类的实例,而无需父类的实例。

如果将 abc 成员设置为类变量,则可以从内部类访问它,因为类变量具有独立于对象实例的全局存储。

否则,您需要将父类的实例传递到嵌套类中,以便嵌套类写入父实例的字段。

关于delphi - 嵌套类中的成员无法访问 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5084759/

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