vcl 的所有对象是建立在"堆"上的,因此,所有的"类"类型的对象必须通过.Create来创建,Free来释放。而简单类型的对象不需要,他们是创建在"栈"上的,因此一旦声明,就有了实体,并在超出作用域后会被编译器释放其空间。
不过,object pascal的引用和c++的引用还是有区别的。c++的引用不允许空引用,不允许动态改变引用所指向的对象,但是,object pascal的引用允许。因为object pascal的对象只能建立在堆上。