Symbian面试题型答案
### Symbian面试题型答案解析#### 1.使用哪个版本的Symbian进行开发?在开发过程中使用了哪个SDK? **答案:** - **Symbian版本:**在开发过程中使用的Symbian版本为Symbian 8.0和Symbian 9.2。 - **SDK版本:**对应的SDK版本分别为SDK 2.0和SDK 3.0。 #### 2. S60 2nd Edition与S60 3rd Edition之间的主要区别是什么? **答案:** - **应用程序包格式(exe/app):** S60 2nd Edition支持.exe格式的应用程序包,而S60 3rd Edition则采用.app格式。 - **图像格式:** S60 2nd Edition通常使用.bmp格式的图像文件,到了S60 3rd Edition,则引入了更多的图像格式支持。 - **权限管理:** S60 3rd Edition增强了权限管理功能,通过不同的权限集来控制对特定API的访问,提高了安全性。 - **入口函数:** S60 2nd Edition的入口函数为`GLDEF_CTIntE32Dll(TDllReason)`,而在S60 3rd Edition中,入口函数可能有所变化或更符合现代C++的规范。 #### 3.开发Symbian应用时使用哪种IDE? **答案:** -开发Symbian应用时可以使用Microsoft Visual C++6.0或CodeWarrior等IDE。 #### 4.描述Symbian代码约定**答案:** - **成员变量命名:**成员变量前缀为`i-`,且应该声明为私有(private)。 - **参数命名:**参数前缀为`a-`。 - **变量命名:**变量名首字母小写。 - **函数命名:**函数名首字母大写。 - **设置器函数:**设置器函数遵循`SetThing(aThing)`这样的命名规则。 - **获取器函数:**获取器函数有两种形式:返回值形式`Thing()`;引用传递形式`GetThing(myThing)`。 - **变量类型修饰符:**在参数列表中使用`&`表示使用关系(`uses-a`),使用`*`表示拥有关系(`has-a`)。 - **异常处理:**函数后缀`L`表示该函数可能抛出异常并需要调用者负责清理(`Leave`);后缀`C`表示该函数将捕获异常(`Catch`)。 - **对象释放:**后缀`D`用于表示那些会删除对象的函数。 #### 5.描述T-、C-、R-类的区别**答案:** - **T类(T-类)**: -没有构造函数。 -不允许显式赋值。 -不需要复制构造函数,按位复制即可满足需求。 - **C类(C-类)**: -继承自`CBase`。 - `CBase`类包含虚析构函数。 -必须在堆上分配内存。 -包含私有的复制构造函数和赋值操作符,以防止意外的浅拷贝。 -通常通过指针或引用传递,而不是值传递。 -重载`operator new`以实现零初始化。 - **R类(R-类)**: -表示资源类,通常用于管理外部资源如文件、定时器等。 -一般在栈上分配,并且必须显式地关闭资源(例如调用`Close()`方法)以释放资源。 #### 6.为什么Symbian引入两阶段构造器?解释`NewL`与`NewLC`的区别以及如何使用它们**答案:** - **两阶段构造的原因:** Symbian OS采用了两阶段构造机制来防止内存泄漏。这种机制使得在构造过程中能够安全地分配和管理资源,即使构造过程中发生异常也能正确地清理资源。 - **`NewL`与`NewLC`的区别:** - `NewL`:用于直接分配内存,当构造过程完成后,会检查是否成功,并在失败的情况下自动执行清理工作。 - `NewLC`:先尝试分配内存,在成功后才调用构造函数。如果构造过程中发生异常,`NewLC`会自动调用`CleanupStack::Pop()`来清理已经分配的资源,从而避免内存泄漏。 **使用示例:** ```cpp //使用NewL分配内存CelementsEngine::CelementsEngine(CConsoleBase&aConsole):iConsole(aConsole) { iElementList = new(ELeave) CelementList(); } //使用NewLC分配内存void CelementsEngine::ConstructL() { CleanupStack::PushL(iElementList); iElementList = new(ELeave) CelementList(); CleanupStack::PopAndDestroy(iElementList); //在异常情况下调用} ```通过这种方式,Symbian确保了即使在构造失败的情况下也能正确释放资源,有效防止内存泄漏问题。
5.72KB
文件大小:
评论区