面向对象面试题二.doc

面向对象面试题二.doc

ID:52155161

大小:558.00 KB

页数:162页

时间:2020-03-23

面向对象面试题二.doc_第1页
面向对象面试题二.doc_第2页
面向对象面试题二.doc_第3页
面向对象面试题二.doc_第4页
面向对象面试题二.doc_第5页
资源描述:

《面向对象面试题二.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、率。5.在类的内部定义成员函数的函数体,这种函数会具备那种属性?答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换地,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是否能形成内联函数,需要看编译器对该函数定义的具体处理。6.成员函数通过什么来区分不同对象的成员数据?为什么它能够区分?答:通过this指针来区分的,因为它指向的是对象的首地址。7.C++编译器自动为类产生的四个缺省函数是什么?答:默认

3、构造函数,拷贝构造函数,析构函数,赋值函数。8.拷贝构造函数在哪几种情况下会被调用?答:1.当类的一个对象去初始化该类的另一个对象时;2.如果函数的形参是类的对象,调用函数进行形参和实参结合时;3.如果函数的返回值是类对象,函数调用完成返回时。9.构造函数与普通函数相比在形式上有什么不同?(构造函数的作用,它的声明形式来分析)答:构造函数是类的一种特殊成员函数,一般情况下,它是专门用来初始化对象成员变量的。构造函数的名字必须与类名相同,它不具有任何类型,不返回任何值。不能被人为调用。10.什么时候必须重写拷贝构造函数?答:当构造函

4、数涉及到动态存储分配空间时,要自己写拷贝构造函数,并且要深拷贝。深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。举个例子,一个人名叫张三,后来用他克隆(假设法律允许)了另外一个人,叫李四,不管是张三缺胳膊少腿还是李四缺胳膊少腿都不会影响另外一个人。比较典型的就是Value(值)对象,如预定义类型Int32,Double,以及结构(struct),枚举(Enum)等。浅拷贝162是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对象的改动都会影响另外一个对象。举

5、个例子,一个人一开始叫张三,后来改名叫李四了,可是还是同一个人,不管是张三缺胳膊少腿还是李四缺胳膊少腿,都是这个人倒霉。比较典型的就有Reference(引用)对象,如Class(类)。11.构造函数的调用顺序是什么?答:1.先调用基类构造函数2.按声明顺序初始化数据成员3.最后调用自己的构造函数。12.哪几种情况必须用到初始化成员列表?答:类的成员是常量成员初始化;类的成员是对象成员初始化,而该对象没有无参构造函数。类的成员为引用时。13.什么是常对象?答:常对象是指在任何场合都不能对其成员的值进行修改的对象。14.静态函数存在

6、的意义?答:静态私有成员在类外不能被访问,可通过类的静态成员函数来访问;当类的构造函数是私有的时,不像普通类那样实例化自己,只能通过静态成员函数来调用构造函数。15.在类外有什么办法可以访问类的非公有成员?答:友元,继承,公有成员函数。15.1什么是多态:面向对象的多态:虚函数和运算符的重载;类的多态:父类指针指向子类成员函数已实现不同功能16.什么叫抽象类?答:不用来定义对象而只作为一种基本类型用作继承的类。里面一定有纯虚函数成员。17.运算符重载的意义?答:为了对用户自定义数据类型的数据的操作与内定义的数据类型的数据的操作形式

7、一致。18.不允许重载的5个运算符是哪些?答:1..*(成员指针访问运算符号)2.::域运算符3.Sizeof长度运算符号4.?:条件运算符号5..(成员访问符)19.运算符重载的三种方式?答:普通函数,友元函数,类成员函数。162友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类

8、的封装性和隐藏性,使得非成员函数可以访问类的私有成员。20.流运算符为什么不能通过类的成员函数重载?一般怎么解决?答:因为通过类的成员函数重载必须是运算符的第一个是自己,而对流运算的重载要求第一个参数是流对象。一般通过友元来解决。21.赋值运算符和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。