free释放的是哪个object?

解决方案 »

  1.   

    free释放引用的对象(释放引用指针指向内存地址)。free后引用指针还是指向原来的地址,再次调用就会出错。所以free后有时还需要引用的话最好将 变量:=Nil
      

  2.   

    free是TObject中的方法,它会调用虚函数Destroy,实际情况就是调用当前对象的Destroy函数(如果没有的话,就是其父类的Destroy函数)。
      

  3.   

    按照Delphi的文档,现在最好使用FreeAndNil函数,否则就需要先Free,再Nil,不过我看过FreeAndNil的源代码,我真不明白Borland为什么这么写这个函数,它是先Nil,再Free的,这样如果对象只申明了,而没有分配内存空间,这个函数是会出错的,我也测试过,但是Free方法照Delphi的文档,应当总是安全的,因为Free方法会先判断对象是否存在,再进行释放,不太明白
      

  4.   

    析构函数   释放还要在后面加  virtual
    这里是先释放Tobject的派生类对象     再次则释放TObject的资源!
    嘿嘿 刚看的书不知道答案对不?