类的Create方法嵌套调用自身的Create方式有没有问题?
例:
TMyClass = class;
private
  MyArr : Array[0..4] of TMyClass;
  ......
public
  ......
  Constructor Create;Overload;
End;Constructor TMyClass.Create;
var
  i:Integer;
begin
  inherited Create;
  for i:=0 to Length(MyArr)-1 do
    MyArr[i].Create;
end;

解决方案 »

  1.   

    上面错了一句,将最后MyArr[i].Create改为MyArr[i]:=TMyClass.Create;
      

  2.   

    inherited create ;
    不会造成死循环啊,调用的是 TObject 的构造函数 而不是自身的。因为对于类声明来说,如果没有定义祖先类,那么他的祖先类就是TObject,如果不加 inherited 的话,就是 无穷第归了。
      

  3.   

    应该是会造成无穷递归的,由于类本身用constructor重载了create函数,调用TMyClass时肯定是调用TMyClass的Create函数,至于inherited只是说一些非TMyClass特有信息的创建将根据TObject.Create来初始化.