我想这样定义两个类?A 要包含一个B 类,B也要包含一个A类?如何定义?两个类在不同的文件里的。

解决方案 »

  1.   

    Delphi不能循环引用,做不到的。
      

  2.   

    type
      ta = class;  tb = class
        a: ta;
        i: integer;
      end;  ta = class
        b: tb;
        j: integer;
      end;
      

  3.   

    不可以,在Interface section里是不能循环引用的
      

  4.   

    把其中一个use 写在implementation 之后看看
      

  5.   

    to aiirii(ari-爱的眼睛):          :  )to其他:delphi大量使用了这种情况,难道各位没看见还是因为这里学生太太太太多多多多多????
      

  6.   

    unit1;
    type
      tc = class;  tb = class
        a: ta;
        i: integer;
      end;  tc = class
        b: tb;
        j: integer;
      end;
    implmention
    uses unit2;
    tb调用时:
      ta(a).b.....
    unit2;
      ta = class(tc)
       ....
      end;
      

  7.   

    >>两个类不在一个文件不能不能如上定义?可以說行, 也可以說不行, 就我的知識來說,
    如果是分成兩個文件就可, 那可用編繹 $I, 但本質上還是一樣的!如果你是從技巧上來討論, 那, 就我知道的知識, 是不行的, 
    如果是實際上有這樣的需要, 那可能是你設計上有問題!
      

  8.   

    使用共同的基类(比如TObject)就行了。然后在implementation的uses中引用。只是有点不方便而已。另外注意一点,Class的交叉引用没问题,但是不要胡乱在Interface间交叉引用。否则可能会死的很难看。
      

  9.   

    有答案了:类前置声明。
    JAVA中取消了这点,如果没有记错的话。 ^^