JBA*_*JBA 4 delphi oop delphi-2009
TTest= class
public abc:Integer;
type
TTest2 = class
procedure test;
end;
end;
procedure TTest.TTest2.test();
begin
abc:=5; //'Inaccessible here'
end;
Run Code Online (Sandbox Code Playgroud)
我得到'实例成员abc在这里无法访问'.
情况很严重.我必须使用一个线程,但由于TThread是抽象的,所以自己的类应该继承它.在我的情况下,需要该线程的类已经继承了另一个不能继承TThread的类...所以这是不可能的.我的场景是继承TThread的嵌套类,下面我声明它.但是Execute(); 方法必须使用其父类的成员.
我该怎么做?为什么这个错误?
dth*_*rpe 14
内部类正是:一个单独的类.只有它的名称范围嵌套在父类中.您可以在没有父类实例的情况下构造内部类的实例.
如果将abc成员设为类变量,则可以从内部类访问它,因为类变量具有独立于对象实例的全局存储.
否则,您需要将父类的实例传递给嵌套类,以便嵌套类写入父实例的字段.
| 归档时间: |
|
| 查看次数: |
1377 次 |
| 最近记录: |