delphi中类的构造函数,析构函数是否像c++中一样在对象构造和销毁时自动调用?
还是需要手动调用。

解决方案 »

  1.   

    其实c++里也是不是所有的对象在销毁时自动调用析构函数的!
    delphi里所有的类的对象分配全部使用堆分配的方式,而c++里还允许栈分配的方式(MyObject obj;),使用栈分配的方式时(比如函数中的局部变量)在生存期结束时,会自动调用析构函数进行释放相关资源!但如果是堆分配方式的话(如c++使用 new 关键字 或delphi使用create函数),那么如果需要释放实体都必须使用显式声明,(如free 或destroy)