new and creat(100分)

  • 主题发起人 主题发起人 hbf
  • 开始时间 开始时间
H

hbf

Unregistered / Unconfirmed
GUEST, unregistred user!
the "new "in bcb== the "creat" in delphi?
 
new 是给对象分配存储空间,
从这一点来说,跟Create差不多
不过,new是返回指向所申请内存的指针,
而Create用的是一种叫做'类引用'的东东
 
delphi中也有new.
 
用法不同。
create是对象的方法,new用来分配内存。
 
delphi and c is differ, but in my mind
delphi's create is like c's new, i donot
care about how they implemented, but they
are alike.

delphi's new is differ to create:)
 
turbo pascal 中关于指针的处理可真有错;它包括一个创建结点的new过程和一个删除结点的dispose过程,用起来确实方便,我想create也应该与此类似,只不过在不同语言中其返回值有所不同而已。
 
I think CJ is something right. But Delphi is more like Java.
All the variables declared are references. You should use
Create methods to initiate them. And you can not say that
Create == New. Create is a method. It is associated with
certain classes or objects. New is a general procedure to
dynamically allocate memory. Yes, they all include a memory
allocation function, but there are more things different.
 
delphi 与 c++ 的对象机制的最大的不同就在于
c++中使用对象指针, delphi中使用对象引用
我认为这正是delphi 成功的原因之一, 我以前是使用
c++的, 它的对象指针很讨厌
form1->tabpageset1->tabpage1->pannel1->radiogroup1->.....
很那想象,如果delphi中也这样做的话
form1^.tabpageset1^.tabpage1^.......
delphi会不会有这么多人喜欢.

 
原来在pascal的时候,用指针的话, 就必须用p^.field1等等,现在好了,
for example,
pMy = ^TMy

TMy = record
field1: integer;
end;

var p: pMy;
begin
new(p);
p.field1 := 0;
p^.Field1 := 1;
end;

两种都可以。
 
hbf 是改错题吗? new 分配内存。在 delphi java 中都是这样。
create 在 delphi 重视建立对象。
 
new 分配内存
create 是delphi包装过的new 类似但不完全相同
应该create做的工作更多
 
walala说的没错。
 
我想SuperMMX好象犯了一个错误,p是一个指向TMy记录的指针,p^是它所指的
内容--一个类型位Tmy的记录。两者是截然不同的,不可能编译通过。
关于hbf的问题,我认为vanguard是对的,Create是Delphi中class的constructor,同时有分配内存和初始化的作用。而new是pascal中用于分配内存
的标准过程,其他相关的过程或函数有dispose,freemem,getmem,etc。
 
接受答案了.
 
后退
顶部