《c++a卷-手机平台程序》由会员分享,可在线阅读,更多相关《c++a卷-手机平台程序(6页珍藏版)》请在金锄头文库上搜索。
1、【程序部】 2008 Page 1 of 6程序员招聘笔试题(C+ )姓 名:刘珺 毕业院校:闽江学院软件工程学院联系电话:13859090423 联系 QQ: 149235231、什么是继承?答:继承是面对对象思想的体现。有利于代码的复用。Class aPublic:Int m_nValue;Public:Void Fun1();Class b:public class a此时 b 类是 a 类的子类,b 类也拥有 m_nValue 的成员变量。和函数 Fun1。2、virtual function 有什么作用?答:带有 virtual 关键字的函数可以被该类的子类重写。例如:Class C
2、BaseMonsterPublic:Virtual void Attack() std:coutfun(); /输出 this is base class6、请简单描述一下 STL。答:STL 是算法,模版类和迭代器的集合。程序员可使用里面的模版类和算法提高工作效率。如容器的使用和一些排序和乱序算法的使用。7、什么是 iterator?有什么作用?答:iterator 是迭代器,可以使用他遍历 vecotr,list,map 等容器。8、作为容器,vector、list、map 有什么不同?答:Vector 在遍历上优于 list 和 map。Vector 内部实质是一个数组,且内存连续。所以
3、遍历优于其他两个容器。List 在插入删除上优于 Vector 和 mapMap 在查找上优于 Vector 和 List在需要大量的遍历容器时常用 vector,在需要反复的插入删除时常用 list,在需要反复的查找时常使用 map。9、请说明以下类成员函数中 4 个 const 的作用:const char* const GetName(const char* pUser) const;【程序部】 2008 Page 4 of 6答:第一个 const:第二个 const:返回值是常量第三个 const:保证在函数内传入的参数不会被修改。第四个 const:该函数不能修改成员变量,并且只能
4、调用相同已 const 结尾的函数。10、静态数据区、堆、栈,有什么区别?答:静态数据区:带代码编译时分配的,用于存放类中声明的静态变量,以及全局变量。堆:是程序员自己动态 new 出来的内存,此时需要程序员在使用完毕后手动释放,否则会引起内存泄漏。栈:是函数在执行的时候分配的有限的空间,用于存放临时数据变量。不需要程序员自己释放。11、请列举 win32 多线程编程中的线程间同步方式。答:信号:通过信号的加减来控制线程对数据的访问 , Mutex(互斥):通过单一线程独享资源的方式来控制对数据的访问CriticalSection(临界区): 通过对线程有序的串化的控制来对资源访问。效率高。1
5、2、Mutex 和 Critical Section 有什么区别?答:使用 Mutex 时只有一个线程可以访问并修改。其他线程只能等待该线程离开后才能操作。而 CriticalSection 可以试多个线程有序的访问资源,因此效率高一些。程序员招聘笔试题( C+)补充题目 D【程序部】 2008 Page 5 of 6姓 名:刘珺 毕业院校:闽江学院软件工程学院联系电话:13859090423 联系 QQ: 149235231、 请简单描述一下纯虚函数的概念,结合你的编码经验谈谈纯虚函数的应用。答:当有一个纯虚函数时,这个类就变成了抽象类。抽象类不能被实例化。只能在被继承后并且子类实现了纯虚函
6、数的情况下才能被实例化。这样就能让子类必须实现而不会遗漏。例如在编写游戏的时候需要使用一个怪物类。而每种怪物必须要有一种基本的攻击方式。此时就能使用纯虚函数来实现。Class CBaseMonsterPublic:Virtual Attack() = 0;Class CMonster1Public:Virtual Attack()Printf(“this is Attack by Monster 1!n”);Class CMonster2Public:Virtual Attack()Printf(“this is Attack by Monster 2!n”);如上,当一个玩家遇到 n 个怪物
7、。此时将所有怪物存放于 vector 中管理,只要遍历 vector并调用 Attack 函数,此时所有怪物就会调用不同的个攻击方式。如果想要动态的添加怪物时Std:vector vMonster;vMonser.clear();/添加 10 个怪物 1for(int I = 0;I Attack();2、 什么是进程的当前目录?如何设置和取得进程的当前目录?答:进程当前目录就是可执行文件所在的文件夹。/获取当前目录TCHAR szCurFolder512 = 0;GetCurrentDirectory(512, szCurFolder);CString strCurDirPath = szCurFolder;Int nTmp = strCurDirPath.ReverseFind(_T();strCurDirPath = strCurDirPath.Mid(0,nTmp);strCurDirPath += ;/设置当前目录调用SetCurrentDirectory(LPCTSTR lpPathName);