探讨,C++和Delphi(OOP)的本质区别是什么呢?

Guade 2004-09-24 10:32:12
如题!
小弟的级别不够不能给更多的分来求教大家!请各位见谅!
我在学习和使用了Delphi一年之后,突然感到很是困惑,C++和Delphi的本质区别是什么呢?
我原来主要是用C做一些驱动的开发,对C++还不是很了解。在这里不是想争论孰优孰劣,只是想从语言的角度对比一下C++和Delphi/OOP。请各位高手赐教!
...全文
1999 98 打赏 收藏 转发到动态 举报
写回复
用AI写文章
98 条回复
切换为时间正序
请发表友善的回复…
发表回复
rcky 2004-10-15
  • 打赏
  • 举报
回复
人类语言,思维


机器“语言”,“思维”
8301 2004-10-14
  • 打赏
  • 举报
回复
`学习`强人真多`
alphax 2004-10-14
  • 打赏
  • 举报
回复
也可以间接赋予它这种自动destroy能力,即使不能自动destroy,也不能说没多少用处吧,至少分配空间要快很多,尤其是大量构造某种对象以及多线程的情况下,

我下午试过了,方法和你不同,但是目前还有些欠缺的地方,就是freeinstance不好办
初步想法是在运行时刻修改对象的freeinstance方法,这样又会影响到所有该类的对象,故而还要判断对象是否在stack中,有没有好的办法能够判断指针是否在当前线程的stack中?
短歌如风 2004-10-14
  • 打赏
  • 举报
回复
在栈上构造对象应该是可以的:
先求出InstanceSize(先运行一下,调用类函数InstanceSize,记住这个值,定义为符号常量)
定义一个足够长的byte数组
取数组地址强制转型为TXXX类型,并调用构造函数和析构函数
不过要调用析构函数可能就需要使用汇编了,否则直接调用的话Delphi会生成释放内存块的代码,而构造函数虽然也是特殊函数但它只有用类来调用时才会分配内存,用对象来调用时相当于普通函数。

不过这种方法我没有试过,因为没有C++那种“自动析构”的能力的话在栈上分配对象并没有多少用处。

firetoucher 2004-10-14
  • 打赏
  • 举报
回复
Delphi的对象是建立在堆上面的。而C++的对象可以建立在栈上面。


-----
Delphi的对象也可以建在栈上,很简单,有了嵌入式汇编,没有什么“能”和“不能”的问题。
而关于op和cpp对于oo的区别:
OO是一个概念。既然是概念,就没有二义性,在那个平台上都是一样的。
现在的D也即将支持操作符重载以及内联等,以后可能对泛型有更好的支持。不过这不是op与cpp的区别,而只是具体的Delphi与具体的Cpp工具的区别。
条条大路通罗马,只是方式不一样而已。
nod一下伴水
dgfb 2004-10-14
  • 打赏
  • 举报
回复
Delphi的对象是建立在堆上面的。而C++的对象可以建立在栈上面。
alphax 2004-10-14
  • 打赏
  • 举报
回复
>>但是绝对不能用于构造/虚函数

可以理解,你还是做个示范吧
zjqyb 2004-10-14
  • 打赏
  • 举报
回复
但是绝对不能用于构造/虚函数
alphax 2004-10-14
  • 打赏
  • 举报
回复
呵呵,你说的应该是class吧,怎么又扯到object去了

你就不要保留了,说说吧
zjqyb 2004-10-14
  • 打赏
  • 举报
回复
Delphi的对象object也可以建在栈上,borland 早考虑了
type
ttt=object
.....
end;


var t:ttt;
t绝对再栈上
alphax 2004-10-14
  • 打赏
  • 举报
回复
>>Delphi的对象也可以建在栈上,

我刚才尝试了一下,好像是可以的,不过目前还有一点麻烦,
firetoucher(风焱) 是否可以把自己的方法拿出来讲讲
loveghb 2004-10-14
  • 打赏
  • 举报
回复
在我迷茫中......
:(
如果就在IDE中拖拖拉拉的话,就不要说是DELPHI程序员了,那就是负责拖拉的机器,简称——拖拉机(郁闷,这个名字竟然被一种运输工具给占了)
FrameSniper 2004-10-13
  • 打赏
  • 举报
回复
英语和法语哪个好?
中国人说都不好,还是中文好.....
zhengwa313 2004-10-13
  • 打赏
  • 举报
回复
http://www.netyi.net/in.asp?id=laijingping
很好的计算机资料下载网站,有兴趣的可以去看看
masterjames 2004-10-12
  • 打赏
  • 举报
回复
Delphi - Pascal 是最优美的语言
jack_4826 2004-10-12
  • 打赏
  • 举报
回复
pascal是非常接近人类语言的程序语言,所以大多数人觉得优美啊
c,c++是符号化的语言,所以机器解决的她优美啊
zuozl 2004-10-12
  • 打赏
  • 举报
回复
真正的程序员用VC、聪明的程序员用Delphi


这纯粹是一句骗了无数中国人的谎言.
真正的程序言,用什么都行.就像一个计算机专业的学生会熟练操作Photoshop,可是画不出什么东西,而一个画家,用Windows附带的画笔也比俺们画得好..
zuozl 2004-10-12
  • 打赏
  • 举报
回复


plainsong(短歌) 分析得还是比较透彻,讲到了设计也提到了实现,经验应该比较丰富.

其实作为一门开发语言他只是为设计服务的,而作为设计是人们在多年的开发软件过程中积累的一些经验(最熟知的就是模式),这些设计会影响改进现在所用的工具.为了灵活的体现人们的这个设计,人们会开发出一些新的开发工具,或修改完善现有的开发工具.就像从c->c++,pascal->object pascal,这是人们从面向过程到到面向对象思想逐渐成熟时所出现的,人们为了很好的体现面向对象设计,改进出了C++/OP这种面向对象的开发语言.因此他们本质是人们实现自己设计时的不同选择,而关键还是你的设计.
lazyboya 2004-10-12
  • 打赏
  • 举报
回复
什么学 Pascal 的人都说它是 最"美丽" 的语言, 而且就像 "诗" 一样

光是那么多的 begin -- end 就够人烦的了
zouchunhui 2004-10-12
  • 打赏
  • 举报
回复
心里发麻,怎么有这么多的强人,怎么有这么多我不知道的
加载更多回复(78)

16,748

社区成员

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

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