我说说自己的看法,我也在学,讲得也许不对
A:用TMyFirstOne.Create 而不用MyObject_One.Create是因为这时MyObject还不存在
B:同A,MyObject被创建,当然要释放它拉这些理解不知对不对,还请指教,谢谢。

解决方案 »

  1.   

    >B:同A,MyObject被创建,当然要释放它拉
    当然是要被释放:) 但是为什么而不能直接用 TMyFirstOne.Free 释放呢? 
      

  2.   

    问题A:
    这是Delphi的类方法。所谓类方法就是不创建类的实例就可以使用的方法,以class关键字说明,Delphi默认构造方法为类方法。如
    type TMyclass=class
           class procedure info;
         end;
    class procdure TMyclass.info;
    begin
      writeln("class method");
    end;begin
      TMyclass.info;
    end;
    构造方法是个函数,要返回实例地址,所以要“:=”;否则MyObject_One指向NIL,调用方法时回出现指针错误。问题B
    同A,free方法不是类方法,当然不能TMyFirstOne.Free。
      

  3.   

    A:
         要使用delphi的类,必须先创建该类的一个实例,这两句都是类的实例化B:
         类的实例使用完毕后,一定要释放,free就是释放类实例的一个方法
         有的实例使用过后没有显式释放是因为它创建的方式不同,例如创建时就指定了宿主,这种实例的释放由宿主为它完成
      

  4.   

    1,TMyFirstOne.Create 返回的只是个指向TMyFirstOne的指针而已,需赋值给TMyFirstOne的变量才可以操控类TMyFirstOne
    2,free可以理解为释放类TMyFirstOne创建时allocate的内存,就象用new分配了内存后要用dispose释放一样的道理