c++ 、symbian面试题 请高人解答
C/C++部分1、非C++内建类A和B,请使用至少3种方法,使得B能隐式转化为A.
2、简述placement new的使用方法。
3、explicit关键字的用途。
4、GC是什么?为什么使用GC?简述原理
5、构造函数是否可为虚函数,析构函数是否可为虚函数,为什么?
6、简述设计模式中的工厂模式。
7、实现一个智能指针类。(编程)
symbian部分
8、简述sdk中提供解析XML的类及使用方法
9、活动对象框架的运作原理(使用时序图画出活动对象,AS及异步服务器之间的调用关系)
10、以下代码可否在S60 2rd(winsw, thumb)及S60 3th (winsw,gcce)下编译通过?为什么(本体目的主要考察二版和三版的区别)
class A
{
public:
void DOPrint(const TDesc& aText)
{
// do something......
}
};
static const char* theString = "hello world";
static const TPtrc thePtr = reinterpret_cast <cast TUint16*>(theString);
LOCAL_C void DOTestL()
{
A*a = new(Eleave)A;
a->DoPrint(thePtr);
} --------------------编程问答-------------------- 1.1 class B:public class A{}
1.2 A(const B&){}
第三种不记得了,不好意思。
2.efficetive c++中有全面的讲解
3.防止构造对象时,被意外更改。用于构造函数前。
4.GC是窗口服务器的一个句柄。用于绘制窗口。
5.构造函数不能为虚函数,析构可以是虚函数,多态时保证子类的析构函数能被调用。
6.工厂模式挺简单的,把创建的对象延迟创建,可以想象一个工厂只负责创建特有的对象。详细看23种设计模式。
7.这就不太会了,以免误人子弟。看AOTUptr.
8.用Parser类。
9.详细时序图看sdk.
10.这个应该是不行。
--------------------编程问答-------------------- mark! --------------------编程问答-------------------- 挖坑 --------------------编程问答-------------------- 那个GC应该不是指S60里的GC吧,应该是指程序中内存释放问题吧.
S60的SDK自己带了一个CXmlHandler类,其实也可以用些第三方的东东. --------------------编程问答-------------------- guan zhu! --------------------编程问答-------------------- 只知道3(防止隐式转换)
补充:移动开发 , Symbian