C++经典面试题库 附带参考答案

VIP免费
2024-12-10 0 0 65.22KB 110 页 5.9玖币
侵权投诉
1. 面向对象的程序设计思想是什么?
答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。
2. 什么是类?
答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。
3. 对象都具有的两方面特征是什么?分别是什么含义?
答:对象都具有的特征是:静态特征和动态特征。
静态特征是指能描述对象的一些属性(成员变量),动态特征是指对象表现出
来的行为(成员函数)
4. 在头文件中进行类的声明,在对应的实现文件中进行类的定义有什么
意义?
答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj 文
件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编
译效率
5. 在类的内部定义成员函数的函数体,这种函数会具备那种属性?
答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会
进行代码替换。
6. 成员函数通过什么来区分不同对象的成员数据?为什么它能够区分?
答:通过 this 指针指向对象的首地址来区分的。
7. C++编译器自动为类产生的四个缺省函数是什么?
答:默认构造函数,拷贝构造函数,析构函数,赋值函数。
8. 拷贝构造函数在哪几种情况下会被调用?
答:
1.当类的一个对象去初始化该类的另一个对象时;
2.如果函数的形参是类的对象,调用函数进行形参和实参结合时;
3.如果函数的返回值是类对象,函数调用完成返回时。
9. 构造函数与普通函数相比在形式上有什么不同?(构造函数的作用,
它的声明形式来分析)
答:构造函数是类的一种特殊成员函数,一般情况下,它是专门用来初始化对
象成员变量的。
构造函数的名字必须与类名相同,它不具有任何类型,不返回任何值。
10. 什么时候必须重写拷贝构造函数?
答:当构造函数涉及到动态存储分配空间时,要自己写拷贝构造函数,并且要
深拷贝。
11. 构造函数的调用顺序是什么?
答:1.先调用基类构造函数
2.按声明顺序初始化数据成员
3.最后调用自己的构造函数。
12. 哪几种情况必须用到初始化成员列表?
答:类的成员是常量成员初始化;
类的成员是对象成员初始化,而该对象没有无参构造函数。
类的成员为引用时。
13. 什么是常对象?
答:常对象是指在任何场合都不能对其成员的值进行修改的对象。
14. 静态函数存在的意义?
答:静态私有成员在类外不能被访问,可通过类的静态成员函数来访问;
当类的构造函数是私有的时,不像普通类那样实例化自己,只能通过静态成员
函数来调用构造函数。
15. 在类外有什么办法可以访问类的非公有成员?
答:友元,继承,公有成员函数。
16. 什么叫抽象类?
答:不用来定义对象而只作为一种基类型用作继承的类。
17. 运算符的意义?
答:为了对用自定义数据类型的数据的操作与内定义的数据类型的数据的操
作形式一
18. 不允许的5个运算符是哪些?
答:
1. .*(成员指针访问运算符号
2. ::域运算符
3. Sizeof 长度运算符号
4. ?:运算符号
5. .(成员访问
19. 运算符种方式?
答:普通函数,友元函数,类成员函数。
20. 流运算符为什么不能通过类的成员函数重?一般解决
答:因为通过类的成员函数重必须是运算符一个是自己,而对流运算
求第一个参数是对象。所以一般通过友元来解决
21. 赋值运算符和拷贝构造函数的区别与联
答:相同:都是一个对象 copy 到另一个中去。
不同:拷贝构造函数涉及到要新建立一个对象。
22. 在哪种情况下要调用该类的析构函数?
答:对象生命周期时。
23. 对象间是样实现数据的共的?
答:通过类的静态成员变量来实现对象间的数据共。静态成员变量有自己
独立的空间不为个对象所私有。
24. 友元关系有什么特性?
答:向的,非传递的,不能继承的。
25. 对对象成员进行初始化的次序是什么?
答:它的次序完在初始化表中次序的影响,只有成员对象在类中声
明的次序来定的。
26. 类和对象间的关系是什么?
答:类是对象的象,对象是类的实例。
27. 对类的成员的访问属性有什么?
答:publicprotectedprivate
28.const char *p char *const p; 的区别
答:
如果 const 位于星号左侧则 const 就是用来指针所指向的变量
针指向为常量;
如果 const 位于星号右侧const 就是指针本身指针本身是常量。
29. 是不是一个类写了一个 virtual 函数,如果覆盖它的函数不
virtual ,也能实现?
答:
virtual 饰符会被形继承的。
virtual 可不加,子覆盖它的函数不加 virtual ,也能实现态。
30. 函数重是什么意思?它与函数的概念有什么区别?
答:函数重是一个同名函数完成不同的能,编译系统在编译阶段通过函数
参数个数参数类型不同,函数的返回值来区分该调用哪一个函数,实现的
是静态的态性。记住:不能仅仅通过函数返回值不同来实现函数重
函数实现的是在基类中通过使关键virtual 明一个函数为函数,
含义就是该函数的能可能在来的生类中定义或者在基类的基础之上进行
扩展系统只能在行阶段能动态定该调用哪一个函数,所以实现的是动
态的态性。它体现的是一个向的概念,也在基类和生类间实现。
31. 构造函数和析构函数是可以被重载,为什么?
答:构造函数可以被重,析构函数不可以被重。因为构造函数可以有
且可以参数,而析构函数只能有一个,且不能参数。
32. 如何定义和实现一个类的成员函数为回调函数?
答:
所谓的回调函数,就是先在系统的对函数进行注册让系统知道这个函数的
存在,以后,当生时,再调用这个函数对件进行应。
定义一个类的成员函数时在该函数前加 CALLBACK 即将其定义为回调函数,函数
的实现和普通成员函数没有区别
33. 函数是么实现的?
答:简单说使用了函数表.
34. 象类不会产生实例,所以不需要有构造函数。
35. 从一个模板类可以模板类,也可以生非模板类。 对
36. main 函数行以行什么代码?
摘要:

1.   面向对象的程序设计思想是什么?答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.   什么是类?答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。 3.   对象都具有的两方面特征是什么?分别是什么含义?答:对象都具有的特征是:静态特征和动态特征。静态特征是指能描述对象的一些属性(成员变量),动态特征是指对象表现出来的行为(成员函数) 4.   在头文件中进行类的声明,在对应的实现文件中进行类的定义有什么意义?答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。...

展开>> 收起<<
C++经典面试题库 附带参考答案.docx

共110页,预览6页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:110 页 大小:65.22KB 格式:DOCX 时间:2024-12-10

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 110
客服
关注