1 / 58
文档名称:

c面试综合.pdf

格式:pdf   大小:6,834KB   页数:58页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c面试综合.pdf

上传人:cjc201601 2022/8/23 文件大小:6.67 MB

下载得到文件列表

c面试综合.pdf

相关文档

文档介绍

文档介绍:: .
1 . 


种情况下要调用该类的析构函数?
答:整个程序结束时调用析构函数。
23 . 对象间是怎样实现数据的共享的?
答:通过类的静态成员变量来实现的。静态成员变量占有自己独立的空间不为某个对象所私有。
24 . 友元关系有什么特性?
答:单向的,非传递的,不能继承的。
25 . 对对象成员进行初始化的次序是什么?
答:它的次序完全不受它们在初始化表中次序的影响,只有成员对象在类中声明的次序来决
定的。
26 . 类和对象之间的关系是什么?
答:类是对象的抽象,对象是类的实例。
27 . 对类的成员的访问属性有什么?
答:public, protected, publico
28 . 判 断 c o n s t和 *的相对位置
如 果 const位于星号的左侧,则 const就是用来修饰指针所指向的变量,即指针指向为常量;
如 果 const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。
29 . 是不是一 个父类写了 •个v irtu al函数,如果子类覆盖它的函数不加virtual ,也能实现多
态?
virtual修饰符会被隐形继承的。
virtual可加可不加,子类覆盖它的函数不加virtual,也能实现多态。
30 . 函数重载是什么意思?它与虚函数的概念有什么区别?
函数重载是•个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类
型不同,函数的返回值来区分该调用哪一 个函数,即实现的是静态的多态性。但是记住:不
能仅仅通过函数返回值不同来实现函数重我。而虚函数实现的是在基类中通过使用关键字
virtual来声明一 个函数为虚函数,含义就是该函数的功能可能在将来的派生类中定义或者在
基类的基础之上进行扩展,系统只能在运行阶段才能动态决定该调用哪一 个函数,所以实现
的是动态的多态性。它体现的是一 个纵向的概念,也即在基类和派生类间实现。
31 . 构造函数和析构函数是否可以被重载,为什么?
答:构造函数可以被重载,析构函数不可以被重载。因为构造函数可以有多个且可以带参数,
而析构函数只能有一 个,且不能带参数。
32 . 如何定义和实现一 个类的成员函数为回调函数?
答:
所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,
当某个事件发生时,再调用这个函数对事件进行响应。
定义一 个类的成员函数时在该函数前加CALLBACK即将其定义为回调函数,函数的实现和
普通成员函数没有区别
33 . 虚函数是怎么实现的?答:简单说来使用了虚函数表.
34 . 抽象类不会产生实例,所以不需要有构造函数。 错
35 . 从•个模板类可以派生新的模板类,也可以派生非模板类。
36 . m a in 函数执行以前,还会执行什么代码?
答案: 全局对象的构造函数会在m a in 函数之前执行。
37 . 当一个类A 中没有生命任何成员变量与成员函数,这 时 sizeof( A)的值是多少,如果不是
零 , 请解释一下编译器为什么没有让它为零。 (Autodesk)
答案: 肯定不是零。举个反例,如果是零的话,声明一个class A[1 0]对象数组,而每一个对
象占用的空间是零,这时就没办法区分A⑼ ,A[1 J…了。
38 . delete 与 delete 口区别:
delete只会调用一次析构函数,而 delete□会调用每一个成员的析构函数。
39 . 子类析构时要调用父类的析构函数吗?
析构函数调用的次序是先派生类的析构后基类的析构,也就是说在基类的的析