TestObject2= class 
    constructor Create;
    destructor Destroy; override;
  ......
end;TestObject1= class(TestObject2)  public
    constructor Create;
    destructor Destroy; override;
  ......
end;TestObject=class(TestObject1) 
public
    constructor Create;
    destructor Destroy; override;
  ......
end;
我创建 TestObject 并执行,
TestObject1 中 Create;的代码能执行
为什么TestObject2 中 Create;的代码不能执行?
谢谢各位了

解决方案 »

  1.   

    楼主的结论是错误的.
    因为创建 TestObject 并执行
    TestObject1 中 Create;的代码并没有执行.
    TestObject2 中 Create;的代码就更不能执行了
      

  2.   

    一个类只能有一个构造函数 TestObject 中 Create 是否和你的 TestObject1 中 Create 一样呢
      

  3.   

    TestObject2
     create
     begin 
       messagebox("2");
     end;TestObject1
    create
     begin 
       inherited Create;
       messagebox("1");
     end;TestObject
    create
     begin 
       inherited Create; // 必须显式调用 不同于C++
       messagebox("0");
     end;
      

  4.   

    如果这个类完全由你创建,那你的类太混乱了!在第一个create后边加入一个virtual吧!这样可以动态的继承!