简答题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、什么叫内联函数?
答:内联函数是类声明体里定义的函数或在类的实现部分定义的、其前用inline修饰的函数;它将简单的函数(其内不能有循环语句和开关语句)"内嵌"到调用他的程序代码中,这样做的目的是为了节省了调用函数的开销。
2、在类定义中,说明成员的访问权限的public、private和protected三个关键字的作用是什么?请分别简述之。
答:在类定义体里,使用了private、protected、public三个关键字是用来说明数据成员和函数成员的访问权限,private说明私有成员,该类成员只能被自己的成员函数或友元访问;protected说明保护型的成员,可以被自己的成员函数或友元访问,也可以被派生类的函数成员访问;public说明公有成员,该类成员都可以通过对象被访问的。
3、class类类型和struct结构体类型异同点?
相同点:都可以封装数据和操作,具派生性、隐藏性和多态性。
不同点:①访问权限:class数据或函数访问私有;struct数据或函数访问公有;
②初始化方式:class类类型只能间接初始化;struct结构体类型可直接初始化。
4、简述重载的方式。
①函数重载:即赋予同一个函数名多个含义。定义重载函数是要求函数的参数或至少有一个类型不同或者个数不同,其一样在于它可用相同的名字访问一组相关联的函数。
②运算符重载:赋予已有运算符多种含义,使之能够用于特定类的对象执行特定的功能。
5、class类类型中,析构函数具有什么特征?
答:析构函数是类的一个特殊的成员函数,它的主要功能是完成对象的初始化,具有以下的特点:
①析构函数的名字必须和类的名字相同;
②析构函数无类型说明,它不能有返回值,在析构函数类下不能有return语句,析构函数可以被重载;
③在定义类时若没有定义析构函数,编译器会在内部自动生成一个不带参数的缺省构造函数,其格式如下:类名::缺省构造函数名(){};
④创建对象时,系统自动调用构造函数,一般不要在程序中显式的调用构造函数。
6、class类类型中,构造函数具有什么特征?
答:构造函数是一个由用户定义的特殊的成员函数。它的主要作用是完成初始化对象的数据成员以及其它的初始化工作。与其他成员函数不同之处在于:
①用户不能调用它,而是在定义对象时,由系统自动调用构造函数。
②构造函数的名字必须与类名一致,不能是其他名字。
③构造函数不能有任何返回类型,也不能指定为void类型。
④用户如果没有定义构造函数,系统会自动生成一个构造函数,只不过函数体中没有任何语句。
7、简述使用友元的利弊。
答:使用友元的益处:在有些情况下,能够利用某些特定的全局函数或类的成员函数对某类的隐藏成员进行存取的这种特性是非常方便的,避免了将类中所有成员都设定为公有成员;
使用友元的弊端:虽然声明友元可以方便的对类的非公有数据进行访问,但同时破坏了类的封装与信息隐藏性,并且难以维护。
8、简述派生类的构造函数和析构函数的执行次序。
答:在派生与继承的层次结构中,当说明一个派生类的对象时,系统先执行各个基类的构造函数,先对基类成员进行初始化,然后再执行派生类的构造函数;若某一个基类也是派生类,则这种执行基类的构造函数的过程需要递归进行下去。在继承链中,构造函数的执行原则是:先执行基类的构造函数,再执行派生类的构造函数。
当一个派生类的对象使用完毕撤消时,析构函数的执行顺序正好与构造函数的执行顺序相反。即:先执行派生类的析构函数,再执行基类的析构函数。