object pascal佳篇推荐!

newyj 2002-12-26 05:51:56
object pascal是delphi的基石。我们在这里讨论的是核心的问题。虽然量少但质量高。
...全文
57 82 打赏 收藏 转发到动态 举报
写回复
用AI写文章
82 条回复
切换为时间正序
请发表友善的回复…
发表回复
李_军 2003-03-13
  • 打赏
  • 举报
回复
up
wudi_1982 2003-03-13
  • 打赏
  • 举报
回复
其实我觉得,语言是一通百通,都差不多,比如面向对象的,
不管是object pascal,还是java,c++,我都用过,如果不做深入的深入的研究,都一样,但如果深到了一定的层次,还是一样
qxj 2003-03-13
  • 打赏
  • 举报
回复
http://www.playicq.com/dispdocnew.php?t=&id=1029
这有个翻译过的OBJECT PASCAL
Randy_Mic 2003-03-11
  • 打赏
  • 举报
回复
to newdream(newdream) :
有限的inherited。有时我想调用祖先类的方法,而不是父类的方法....
...

你的方法不行,编译时报错:Undeclared identifier: 'TAncestor'!!


wanas 2003-03-10
  • 打赏
  • 举报
回复
up
vitamin_ok 2003-03-10
  • 打赏
  • 举报
回复
又一本《delphi高手突破》大家听说过吗?!

不错的呀!
newdream 2003-03-10
  • 打赏
  • 举报
回复

>>3. 不能声明类的静态变量(这点不太要紧,可以用静态函数和全局变量来仿真)
------------------------------------
使用属性多好

>>4. 不能隐藏一个祖先隐藏的属性或方法。Object Pascal可以披露祖先类隐藏的方法或属性,但是要隐藏祖先类披露的属性或方法,我还不知道怎样做。把这些属性放到protected section或private section也不能做到。
------------------------------------------------
那是因为在同一个单元文件中,所有类可以互相看得见。如果这些类不在同一个单元文件中,就可以隐藏祖先类披露的属性或方法。不信你试试!

>>5. 有限的inherited。有时我想调用祖先类的方法,而不是父类的方法,但是我也不知道怎样做。比如:
TAncestor = class(...)
protected
procedure AProc; virtual;
end;

TParent = class(TAncestor)

protected
procedure AProc; override;
end;

TChild = class(TParent)
protected
procedure AProc; override;
end;

procedure TChild.AProc;
begin
//can not call TAncestor.AProc via the below statement
//inherited TAncestor.AProc;

//you can call this only
inherited;
...
end;
----------------------------------------
你的TAncestor.AProc是虚方法,当然不行。这样试过吗?
TAncestor = class(...)
protected
procedure AProc;
end;

TParent = class(TAncestor)

protected
procedure AProc;
end;

TChild = class(TParent)
protected
procedure AProc;
end;

procedure TChild.AProc;
begin
inherited TAncestor.AProc;
end;


>>6. 没有声明裸(naked)函数的能力。
---------------------
可以使用类方法,不需要实例就可以使用类的函数。


>>12. 缺少多重继承(虽然现在很多设计人员不赞同多重继承,但毕竟这是一种语言和编译器的能力),有Interface就行了
--------------------
Delphi是强类型语言,使用类的多重继承后如何转型(转为父类型,还是母类型?),用Interface可以实现多重继承,这是趋势,C#和Java都向他学习。
flyycyu 2003-03-07
  • 打赏
  • 举报
回复
up
linzer 2003-03-06
  • 打赏
  • 举报
回复
特别关注
DDeveloper 2003-03-06
  • 打赏
  • 举报
回复
推荐各位去看看《深度探索C++对象模型》这个书,从语意的基础上理解理解C++编译器是如何理解我们写出的代码的,看看C++的编译器在后台帮我们做了什么。最后用从这本书中学到的知识来推敲推敲D的编译器为我们在后台做了些什么。

我推荐大家看看这两天鸡翅兄(MAHONGXI)发的那个帖子,地址是
http://www.csdn.net/Develop/article/17/17299.shtm


其实很多的书上都谈到了关于D编译器的后台动作问题,但总感觉说的很不过瘾,看来只能靠我们自己在茫茫的资料海洋中一点一点汲取了,没有办法,找不到钥匙啊!呵呵

大家有关于Delphi编译器的后台行为方面的知识点和资料连接都提供出来,说不定可以汇集成一本书的内容啊!
bluerosehero 2003-03-06
  • 打赏
  • 举报
回复
在下新来不久,但对编程深有体会,我认为,最主要的不是你把这种语言的语法及其他一些东西整的多熟而是你有没有解决问题的思想,就是最原始的数学思想,参考书么,就是工具书,我们可以在用的时候翻阅,建议搞好C语言。
JackyChang 2003-03-06
  • 打赏
  • 举报
回复
关注!很想将掌握Object Pascal
jenemery 2003-03-06
  • 打赏
  • 举报
回复
gz
proman 2003-03-05
  • 打赏
  • 举报
回复
To: Dbexpress
无法给你回短消息,不知为什么。
其实在用Delphi的过程中我也遇到过一些问题。比如那个Try的结构问题,说句老实话我也用得很不爽,不过我一开始并不知道还有几个在一起的结构,但看了一点Java之后,确实觉得这种结构是不错的。但是这也是可以解决的。无非是写起起来繁烦一点而已。其实这样的结构就是下面的句子:
try
try

except

end;
finally

end;
是吧,其实Delphi是可以完成这样的功能的,当然写得是要繁一点,这就如我上面所说,各个语言的设计思想的出发点不尽相同,特别是底层的思路可能有很大的区别,这也就是Delphi不支持多重继承等的主要原因。但是就你上面说的那些问题,有些也许可以算是Delphi的优点,有些看上去确实是Delphi的不足。当然称Delphi是不合适的,因当准确的说是Object Pascal。所以说Object Pascal是Delphi的精华。不要称我为大佬,我是不敢当的。我用Delphi也就几年功夫。你确到的大部分问题,也曾经是我经常骂在嘴边的。可是随着我对Delphi的深入,特别是对Delphi中VCL组件的源码的深入解析,原先在我心中的一些问题却已有了新的想法。
举个例子,我想没有人会说Delphi的IDE写的不好吧。在有这么多的不方便之处,为什么他们能写这么好呢。你甚至可以用一个Delphi去调试另一个Delphi。其实无它,因为Borland的人已经熟透了Delphi。我想如果如果我程序遇到了需要上面那些问题解决的时候,我是应当需要考虑一下我的类的设计了。因为我发现,当然需要用到这些特别的功能时,经常都是祖先类没有设计好造成的。VCL的层次结构为什么没有这些问题呢。唉,学无止境啊。
其实对Delphi来说,最重要的不是他的版本,而是Object Pascal编绎器的版本,现在不是支持Linux下的编绎了吗?其实我想它支持Alpha是不难的。关键是一个商业公司为什么要去支持吧。
对不起,我是随便说两句。大家不要介意。更不必挂在心上。我才用了Delphi几年,还差的远呢,还是愿意听取大家的意见。Borland又要推出C#Build了。唉,不知后事如何啊。
MyCrooner 2003-03-05
  • 打赏
  • 举报
回复
关注
cnsuyong 2003-03-03
  • 打赏
  • 举报
回复
Delphi、Kylix等开发套件中的ITE都是Object Pascal的设计加速器。
Delphi中的VCL和Kylix中的CLX等都是Object Pascal的性能加速器。
俺要说的是:Delphi和Kylix都是为Object Pascal服务的(尽管后者不仅仅为OP服务)。准确地说,Borland/Inprise一直在发展Pascal,而在发展中产生了Delphi、Kylix,使得这些开发平台能实现最快的Object Pascal应用开发。
因此,Object Pascal是Delphi的基石,尽管没错,但俺以为把主次弄颠倒了。就象有人说他的爸爸和他长的很象差不多。
俺以为应该说成,Delphi是Object Pascal的加速器,Delphi的精华是Object Pascal。

此为拙见,祈为见谅!
dbExpress 2003-03-03
  • 打赏
  • 举报
回复
意志朋友,你这是右倾啊,你要注意啊
emin 2003-03-03
  • 打赏
  • 举报
回复
object pascal就其语言本身而言,我觉得无法跟c++比,可是配上DELPHI,它就有很多优点了.只所以选择DELPHI,我看不是因为OBJECT PASCAL,是因为DELPHI的集成开发环境.
ringotu 2003-03-02
  • 打赏
  • 举报
回复
to dbExpress:
呵,就是标准模板库的意思了
Truefly 2003-03-01
  • 打赏
  • 举报
回复
object pascal 就是苹果提出的。
加载更多回复(62)

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧