Symbian开发入门
2010-06-03 23:07:00 来源:WEB开发网R类通常都很小,除了资源句柄没有其它的成员变量。因为不需要。它通常也没有析构方法,资源的释放都是在Close()方法中进行的。大多数情况下,R类都是作为类的成员变量或局部变量存在的。只有少数情况下,在堆上创建。
您必须确保,当程序发后异常的时候,资源能被正确地释放------通常是使用资源栈。如果一个R类是一个堆上的自动变量(相对于成员变量),您一但要保证资源被释放,而且,变量本身也要被释放。
R 类的成员变量通常都很简单,所以一般不需要深拷贝(bitwise copy)。R类的拷贝可能会引起混乱(想象一下:如果两个对象同时在一个资源句柄上调用 Close()方法,或两个对象都没有释放资源,会发生什么情况?)如果,您想阻止任何对R类的拷贝,您应当声明(但不定义)一个私有的构造方法和赋值操作。
? M 类
当提到多继承的时候,它意味着从一个主要的类派生,同时也混杂基它类的功能。前缀M是单词Mixin的首字母。Symbian系统不赞成多继承的做法,因为这个引入额外的复杂性,M类是一个抽象类,它的作用相当于java中的接口(interface)。在Symbian系统中,M 类常被用来定义回调接口或者是观察者(observer)类。M类也可以被其它类继承。下面我们给出两个例子。
class MAnimal
{
public:
virtual void EatL() =0;
};
class MDomesticAnimal : public MAnimal
{
public:
virtual void NameL() =0;
};
class CCat : public CBase, public MDomesticAnimal
{
public:
virtual void EatL(){}; // 从MAnimal, 经过MDomesticAnimal继承
virtual void NameL(){}; // 从 MDomesticAnimal继承
// Other functions omitted for clarity
};
上面的例子演示了一个从CBase类和一个M类派生的具体类。而类MDomesticAnimal又是从MAnimal派生的。象接口一样,由于不能被实例化,M类只能有虚(virtual)函数,不能有成员变量和构造方法。但它可以有析构方法,
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
- ››Symbian 3 版的 Swype 输入法正式上架
- ››Symbian中的设计模式
- ››Symbian S60平台JAVA开发环境搭建步骤
- ››Symbian自定义控件—如何实现跑马灯效果
更多精彩
赞助商链接