Delphi学习笔记
来源:互联网 发布:cms远程摄像头破解软件 编辑:程序博客网 时间:2024/05/20 18:03
1>引用对象与结构对象,对于OO实现的影响。
OO中非常非常重要的一点就是可以使用虚拟函数。使用虚拟函数需要必然的类型转换。
那么对于Delphi来说,这些基本可以不用考虑。
而在VC++中的话,主要使用指针及引用来进行OO中子类到父类的类型转换。一定不能
直接使用赋值的方式来转换,因为这样做的话,该对象通常就会被阉割了。
2>VC++与Delphi中的RTTI使用上的区别
VC++ 中的RTTI精简,使用的一组宏。C++本身的RTTI功能则不是很好用,功能太少了。
DELPHI 的RTTI则是可以把语言与IDE结合得更紧,目前我所知道的RTTI技术,是需要一个基类的。
在MFC中是CObject,在Delphi中是TObject.然而,VC++中新建立的类可以不用继承自CObject,那么MFC中的RTTI
就没法用了。而Delphi由于在Pascal语言中的强势,所以说Delphi是Pascal,Pascal是Delphi也是可以的。
而在Delphi中所有的类,必须直接或间接的继承自TObject,所以Delphi中的RTTI更常用。
2>异常处理与资源泄露
在C++中只能使用try...catch...方式处理异常,而在Delphi中则可以使用finally处理。
通常Delphi在finally中处理了生成资源的回收。
TObj obj = TObj.Create();
try
begin
//do something
end
finally
begin
obj.Free(); //
end;
而C++中的对象产生异常,则需要这样:
CObj *obj = new CObj();
try
{
//do something
}
catch (...)
{
delete obj;
obj = NULL;
}
if (obj) delete obj;
显得冗长,幸运的是,C++中的对象可以生成在栈中。于是我们可以使用智能指针进行资源的回收。甚至可以不需要使用try。
另外,由于Delphi中的Record类型才能生成在栈中,而OO对象只能生成在堆中。所以Delphi也只能使用那一种方式。
3>类型安全与强制转换
Delphi中的Pointer可能转换成任何Pascal Object。所以减分。
但是Dephi中的任何地方都可以使用RTTI,所以对他有加分。
在VC++中指针是非常裸的,所以如果没有其它手段(比如智能指针)保障,那能他的安全可以说是差到不能再差了。
另外对于强制转换,在Delphi中由是使用单继承,所以这方面他也有一些好处(其实就是可以了解更少)。
VC++可以使用多继承,由于其虚函数表的实现方式影响。因此,VC++的对象指针在转换后其内存地址可能会不一样。
因此C++ 中为了正确的进行转换会有一组相应的转换函数static_cast ,reinterpret_cast,dynamic_cast。
注:我这里说的强制转换与上面说的类型转换是有些不一样。第一次说的是从子类到父类的转换,而这里
说得更多的是父类到子类的转换。一般来说这是需要RTTI的。所以VC++中的dynamic_cast的正确使用需要开启C++中的RTTI功能
4>异常发生时的调试:
Delphi IDE中有个非常好的功能,那就是在设计时(这里我定义为,在Dephi中运行程序)产生的异常能够定位在最近的源码那里,非常方便。
不过听说在.NET以后等的异常信息可以回朔,就好象查看函数调用的堆栈那样。非常方便,不过这都是题外了。
- delphi部分学习笔记
- DELPHI学习笔记1
- Delphi学习笔记
- DELPHI学习笔记1
- DELPHI学习笔记
- delphi学习笔记
- Delphi学习笔记
- DELPHI学习笔记--数据类型
- delphi学习笔记1
- DelPhi学习笔记
- Delphi学习笔记
- delphi学习笔记--TAnimate
- delphi学习笔记--TOpenDialog
- delphi学习笔记--TADOQuery
- delphi 学习研究笔记
- Delphi学习笔记一
- delphi数据库学习笔记
- Delphi学习笔记 数据类型
- 明天的我,能做什么?
- Java中常见的异常
- 虚拟软盘安装Fedora 6
- 最近工作进度非常非常缓慢。
- 30分钟内创建Web Service
- Delphi学习笔记
- 《WEB应用测试》笔记(三)
- LINUX中配置IP地址
- 开通博客了!
- 修改host文件访问BlogSpot
- 今天的面试题:任意输入18个数字(如:450457140),转换成中文读法(如:肆亿伍仟零肆拾伍万柒仟壹佰肆拾)
- 今天过生日
- 面具
- Google搜索指令大全(最新整理)