- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
一些名公司的笔试题(转载)
C与C++
static的作用(中天联科)
static变量存放于静态存储区,static全局变量和static函数仅在当前文件下可见,static局部变量仅能有当前函数控制,且仅初始化一次,默认初始化为0。static成员变量仅有一份实例,需在类外初始化,在类实例化前就能使用,static成员函数在类实例化前就能使用,仅能访问类的静态成员和静态成员函数。
sizeof:
inta[2][3];sizeof(*(a+1));//123virtual关键字的使用
申明虚函数以实现动态绑定,即多台;
申明某个类继承虚基类,使公共父类只有一个实例
classA{};classB:virtualpublicA{};classC:virtualpublicA{};classD:publicB,publicC{};
声明纯虚函数,(抽象类,是无法初始化的),此函数必须在继承类中实现。
singleton的实现(火花软件)classSingleton{
public:
staticSingleton*GetInstance(){if(instance==NULL){
instance=newSingleton();
}
returninstance;
}
protected:
Singleton(){
coutconstructsingletonendl;
}
~Singleton(){
}
private:
staticSingleton*instance;
};
union的用法(腾讯面试)
c++中的virtual如何实现多态(微策略)
利用虚函数表。每个类都有一张虚函数表,记录类中所有虚函数的函数指针,每个对象都有一个额外的虚指针vptr,指向这张虚函数表,当通过指向对象的指针调用虚函数时,根据vptr调用相应的函数版本实现动态绑定。
堆溢出与栈溢出危害的区别(极光互动)
栈顶指针指向未知区域,可能造成系统崩溃,不仅仅指错数据而已。
函数调用的具体过程(汇编,栈)(极光互动)
使用stl的不妥之处(极光互动)
内存碎片,自己处理内存只膨胀不收缩
栈中临时变量的具体情况,什么叫自动销毁,自动清除(极光互动)
什么情况下自己实现链表(极光互动)
windows下C++多线程网络编程(极光互动)
const的用法
constchar*constch=a;*前面的const指明指针指向的内容不可改变,*后面的const指明指针本身不能变
参数用const修饰表明该变量不能变,返回值为const表明返回的值类型为const(一般用于操作符重载),与普通const相同
const修饰成员函数放在函数声明后面,表明不能修改数据成员Af;constAe=f;//这样e只能访问f的const成员函数
构造函数,析构函数,拷贝构造函数
子类会首先调用父类的构造函数,最后调用父类的析构函数。拷贝构造函数是为实现深拷贝,即实现动态内存的拷贝和释放。构造函数不能直接调用。构造函数会默认先将类的成员对象初始化。函数调用结束时会自动析构对象。
内部类(汤森路透机试)
内部类对象默认初始化与普通成员对象一样,由构造函数在最开始进行。内部类的访问需用外部类标号。
函数指针注意加括号
intfun1(inta){coutaendl;returna;};
intfun2(inta){cout100+aendl;return100+a;};int(*ptr[2])(int);
ptr[0]=fun1;ptr[1]=fun2;
(*(ptr[0]))(5);//orptr[0](5)(*(ptr[1]))(6);
a+++b(联想研究院)
inta=5;intb=10;intc=a+++b;//a=6b=10c=1518int*a[10]与int(*a)[10]的区别(联想研究院)
前者为指针数组,后者为指向数组的指针。前者sizeof(a)为10后者sizeof(a)为4
C的几个库函数的实现memcpystrcpyatoimemset
memcpy函数的内部具体实现内存,越详细越好。(marvell电面)页表将虚拟地址转换成物理地址,TLB命中,缓存,内存,虚存。21virtual析构函数的作用(marvell电面)
C++有明确的说法是,一个类作为基类时,如果其析构函数不声明成virtual,那么指向派生类的基类指针在析构时的行为不可知。
t
文档评论(0)