Symbian内存管理的二十二条军规

1、C类必须有析构函数,这是CBase的一个虚函数。

2、C类的构造函数和ConstructL()必须为protect或private类型的成员函数3、在C class中必须有一个NewLC()函数,除非它是嵌套类。NewL()是可选的,并且总是根据NewLC()来实现。

4、NewL()和NewLC()在c class中必须是static函数。

5、C类通过指针和引用来传递。

6、拷贝构造函数在symbian中没有用。

7、不一定要在析构函数中删除类的成员对象。(生命期结束即可删除)

8、析构函数中必须对对象进行if检查。即if(iObject) delete iObject;iObject = NULL;

9、R类没有明确的构造、析构或拷贝构造函数以及赋值操作。

10、delete a;a=NULL;a=b;标准重新分配过程。

11、任何可能导致异常退出的函数皆加L后缀。

12、不要删除非拥有对象(也就是,那些仅仅只使用的对象)

13、分配动态数组前定义一个合适粒度。

14、把new换成new(ELeave)。

15、if(函数不能异常退出&&要自己处理错误时)使用TRAP&&不要过多嵌套。本文来自编程入门网。

16、if(aObject被一个自动变量指针引用&&将进行一个可能在aObject生存期内Leave的操作)

CleanupStack::PushL(aObject);

17、决不能把一个i前缀的成员变量PushL入清理栈。

18、构造函数决不能Leave,把可能异常退出的语句放到ConstructL()中去。

19、Symbian的默认栈容量为8k,小心使用递归。

20、TBuf的长度最好不超16,必要的情况下用HBufC代替TBuf.

21、使用__UHEAP_MAEK 宏来检测你的内存状况。

22、尽可能早的删除一切失去使用价值的东西,不要等到函数尾部(自动变量)或在析构函数中才删除(成员变量)。

时间: 2024-10-27 22:14:48

Symbian内存管理的二十二条军规的相关文章

二十八条改善 ASP 性能和外观的技巧 1-6(From Ms China)——七月份的文章,好像还没人转过

技巧|性能 二十八条改善 ASP 性能和外观的技巧 Len Cardinal,高级顾问,Microsoft Consulting Services George V. Reilly Microsoft IIS Performance Lead 改编自Nancy Cluts 的文章 开发人员技术工程师 Microsoft Corporation 2000 年 4 月 摘要:本文介绍优化 ASP 应用程序和 VBScript 的技巧. 引言 性能是一个特征.您必须预先设计性能,否则您以后就得重写应用

二十八条改善 ASP 性能和外观的技巧(1-7)

技巧|性能 二十八条改善 ASP 性能和外观的技巧 Len Cardinal,高级顾问,Microsoft Consulting Services George V. Reilly Microsoft IIS Performance Lead 改编自Nancy Cluts 的文章 开发人员技术工程师Microsoft Corporation 2000 年 4 月 摘要:本文介绍优化 ASP 应用程序和 VBScript 的技巧. 目录 技巧 1:将经常使用的数据缓存在 Web 服务器上 技巧 2

Bootstrap <基础二十二>超大屏幕(Jumbotron)

原文:Bootstrap <基础二十二>超大屏幕(Jumbotron) Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: 创建一个带有 class .jumbotron. 的容器 <div>. 除了更大的 <h1>,字体粗细 font-weight 被减为 200px. 下面的实例演示了这点: <!DOCTYPE

云计算设计模式(二十二)——静态内容托管模式

云计算设计模式(二十二)--静态内容托管模式 部署静态内容到一个基于云的存储服务,可以直接向客户提供这些.这个模式可以减少潜在的昂贵的计算实例的需求. 景和问题 Web应用程序通常包括静态内容的一些元素.此静态内容可以包括HTML页面和诸如图像和可用到客户端的文件的其他资源,无论是作为一个HTML页的一部分(如嵌入式图像,样式表和客户端JavaScript文件)或作为单独的下载(如PDF文档). 尽管Web服务器以及调整通过有效的动态执行页代码和输出缓存优化的要求,他们仍然必须处理请求下载静态内

Android简明开发教程二十二:使用资源Resources

在前面的例子中,我们忽略了一个重要的原则,在代码和Layout中,直接使用了字符串常量,比如: <Button android:text="Pattern" android:id="@+id/btnPattern" android:layout_width="wrap_content" android:textColor="@color/black" android:checked="true" an

Windows 8风格应用开发入门 二十二 MessageDialog

MessageDialog概述 MessageDialog指的就是对话框. 对话框的命令栏中最多包含三个命令.如果我们指定任何命令,将会有一个默认命令添加到对话框中,目的是关闭对话框. 对话框弹出后界面中所有元素将在对话框下面显示,并且将会阻塞任何触摸事件直到用户进行响应对话框. 另外对话框应该尽量少用. 注意:Windows 8风格应用中取消了MessageBox对象,取而代之的是MessageDialog对象. MessageDialog常用属性和方法 MessageDialog类包含两类构

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十二)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十二)重构 – 让代码插上翅膀自由飞翔 上一节,我将游戏地图模式进行了一次重大的变动,这在实际开发中意味着项目大规模重置,虽然表面上显得游刃有余,仅仅一个AllMove()方法的改变即实现了完美转型,这全得归功于前20节所搭建起的相对高度可扩展平台.但是,随着开发不断深入,我慢慢的感到些许的不安,因为代码上的日益松散与结构的渐渐稀疏如同Windows系统的磁盘碎片与日俱增,未来维护时的烦琐与痛心疾首已历历在目

微信小程序把玩(二十二)action-sheet组件

原文:微信小程序把玩(二十二)action-sheet组件 action-sheet组件是从底部弹出可选菜单项,估计也是借鉴IOS的设计添加的,action-sheet有两个子组件, action-sheet-item为每个选项,action-sheet-cancel取消选项,与action-sheet-item中间会有间隔,并且点击会触发action-sheet监听事件 主要属性: wxml <!--触发action-sheet事件--> <button type="prim

JAVA之旅(二十二)——Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习

JAVA之旅(二十二)--Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习 继续坚持下去吧,各位骚年们! 事实上,我们的数据结构,只剩下这个Map的知识点了,平时开发中,也是能看到他的,所以还是非常值得去学习的一个知识点的,我们直接开车了 一.Map概述 泛型< k,v> 键值对,映射关系 基本特点 该集合存储键值对,是一对一对往里存,而且要保证键的唯一性 1.添加 put(key ,values) putAll() 2.删除 clear() remove(ob

二十八条改善 ASP 性能和外观的技巧(15-21)

技巧|性能 技巧 15:批处理内嵌脚本和 Response.Write 语句 技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected 技巧 17:使用 <OBJECT> 标记例示对象 技巧 18:对于 ADO 和其它组件使用 TypeLib 绑定 技巧 19:利用浏览器的验证功能 技巧 20:避免在循环语句中使用字符串串联 技巧 21:启用浏览器和代理缓存 技巧 15:批处理内嵌脚本和 Response.Write 语句 VBScript