|
基于栈的对象
C++的对象是基于栈的,你可以像普通数据类型一样声明它,访问它的成员,调用它的方法,然后由编译器自动清理栈现场,C++的对象更像一个增强的结构。
而后来的许多面向对象语言如Java,C#等都采用了基于堆的对象机制。Object Pascal呢?毫无疑问它的对象也是基于堆的,当我们看到对象与指针进行转换的代码时,觉得很正常,因为OP对象本质上就是一个指针。
那么Delphi只有基于堆的对象吗?它会不会存在一种基于栈的对象呢?回答这个问题之前先来看看下面的代码:
<div style="padding-right: 4pt; padding-left: 4pt; background: #e0e0e0; padding-bottom: 1pt; padding-top: 1pt;">var
People: TPeople;
begin
People.Name := 'Tom';
People.SayMyName;
end;
|
|