Symbian开发入门
2010-06-03 23:07:00 来源:WEB开发网CCat *cat1 = new CCat;
delete cat1; //正确
然下面的代码却是错误的。
MAnimal *cat2 = new CCat;
delete cat1; //错误
当用M类的指针引用一个对象的时候,如果用delete删除这个指针,则这个M类必须提供一个虚拟的析构方法,否则会出现系统异常(panic code 42)。将MAnimal的代码改写,则上面代码没有问题。
class MAnimal
{
public:
virtual void EatL() =0;
virtual ~MAnimal(); //增加一个虚的析构方法。
};
3描述符(descriptor)
在 Symbian 系统中,字符串被称为“描述符”(descriptor),因为它们是自我描述的。在描述符中保存了它所表示的字符串的长度和它的底层的内存布局的信息。描述符比标准C中的字符数组和字符指针要复杂,您可能需要多花些时间来学习和掌握它的用法。关键是,它们的特殊设计使得它们在少量内存的设备上非常有效率,仅用非常少的内存就可以保存自己的长度和内存布局的信息。现在,让我们来深入了解描述符的设计思想。
在Symbian系统中,描述符是相当让人迷惑的,因为它的种类繁多。不同种类的描述符具有不同的特性和用法,但又经常能相互转换。它们不同于标准C++中的string,java语言中的 string类或MFC中的CString,因为程序员必须自己管理底层的内存分配和清除工作。它们具有防治内存溢出的机制,并且不依赖NULL终结符号来决定字符串的长度,从这方而来讲,它也不同于C语言中的字符串。
现在我们来讨论:什么是描述符?它们是如何工作的?在探讨这些不同的描述符之前,先让我们需要弄清楚一个基本的概念:什么是字符串数据的“宽度”?这个长度指的是单个字符是8bit的,还是16bit的宽度。在早期的版本中,字符的宽度都是8bit的,后来为了支持Unicode字符集,从第5版起,Symbian系统将16bit 的字符作为标 准。Symbian系统现在支持这两种字符长度的描述符,除了Copy()和Size()两个方法以外,这两种宽度的描述符的行为是完全一致的,这两个方法的使用,我们后面再介绍。另外,有一套中立的描述符类型,它们既可以被定义为窄的描述符类型,也可以被定义为宽的描述符类型,这要取决于编译时的宽度。您可以从它的名字上很容易看出这个类型所表示的宽度。假如,它以8结尾(例如:TPtr8,就意味着它表示是的8bit的窄字符,而以16结尾的描述符类(例如:TPtr16)则操作16bit的宽字符。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接