网站建设35类,网站建设开发计划,做网站教程 第一课,怎么建立公司网站1.面试官#xff1a;在使用继承时需要注意哪些问题#xff1f;
应聘者#xff1a;在使用继承时需要注意以下内容。
#xff08;1#xff09;父类的构造函数和析构函数是不会被继承的#xff0c;需要重写派生类的构造函数和析构函数。
#xff08;2#xff09;派生类…1.面试官在使用继承时需要注意哪些问题
应聘者在使用继承时需要注意以下内容。
1父类的构造函数和析构函数是不会被继承的需要重写派生类的构造函数和析构函数。
2派生类的成员数据中有来自父类的成员数据因此在写派生类的构造函数的时候需要调用其父类的构造函数。
3如果派生类的成员中有成员对象那么也需要用成员对象名来进行初始化。
4派生类构造函数、析构函数的调用顺序如下
①构造函数中首先调用各个直接基类的构造函数之后再调用成员对象的构造函数最后才是新增成员的初始化。
②对于多继承有多个基类那么其构造函数的调用顺序是按被继承时的声明顺序从左到右一次调用与初始化表的顺序无关。
③对于成员对象的初始化也是一样与它们的声明顺序有关和构造函数中的初始化表的顺序无关。
④如果没有进行显示的调用那么会调用其默认的构造函数。
⑤子类的复制构造函数也要为各个直接基类的复制构造函数传递参数。
⑥在派生类的析构函数中不会显示调用基类的析构函数系统会自动隐式调用调用顺序和构造函数的调用顺序正好相反先构造的后析构。
2.面试官C多态是如何实现的及其原理是什么
应聘者C的多态性用一句话概括就是在基类的函数前加上virtual关键字在派生类中重写该函数运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类就调用派生类的函数如果对象类型是基类就调用基类的函数。
1用virtual关键字声明的函数叫作虚函数虚函数肯定是类的成员函数。
2存在虚函数的类都有一个一维的虚函数表叫作虚表类的对象有一个指向虚表开始的虚指针。虚表是和类对应的虚表指针是和对象对应的。
3多态性是一个接口多种实现是面向对象的核心分为类的多态性和函数的多态性。
4多态用虚函数来实现结合动态绑定。
5纯虚函数是虚函数再加上“ 0”。
6抽象类是指包括至少一个纯虚函数的类。纯虚函数“virtual void fun()0;”即抽象类必须在子类实现这个函数即先有名称没有内容在派生类中实现内容。
3.面试官运算符重载作为类成员函数和友元函数之间的区别
应聘者在多数情况下将运算符重载为类的成员函数和类的友元函数都是可以的。但成员函数运算符与友元函数运算符也具有各自的一些特点
1一般情况下单目运算符最好重载为类的成员函数双目运算符则最好重载为类的友元函数。
2以下一些双目运算符不能重载为类的友元函数、()、[]、-。
3类型转换函数只能定义为一个类的成员函数而不能定义为类的友元函数。
4若一个运算符的操作需要修改对象的状态选择重载为成员函数较好。
5若运算符所需的操作数希望有隐式类型转换则只能选用友元函数。
6当运算符函数是一个成员函数时最左边的操作数或者只有最左边的操作数必须是运算符类的一个类对象或者是对该类对象的引用。如果左边的操作数必须是一个不同类的对象或者是一个内部类型的对象该运算符函数必须作为一个友元函数来实现。
7当需要重载运算符具有可交换性时选择重载为友元函数。
4.面试官什么是I/O流
应聘者在C中将数据从一个对象到另一个对象的流动抽象为“流”stream。当输入时所输入的信息是从键盘对应的缓冲区中流入正在运行的程序的缓冲区这些输入的信息称为“输入流”该操作称为“读操作”。当输出时数据从程序流向屏幕或磁盘文件称为“输出流”该操作称为“写操作”。
5.面试官get()和getline()有什么区别
应聘者get()函数每次只能读取一个字符而getline()函数可以读取整行数据包括空白在内。
6.面试官C为什么不使用标准I/O函数
应聘者C语言中提供两个标准I/O函数格式分别如下 printf(格式控制符输出变量1输出变量2...);
scanf(格式控制符输出变量1的地址输出变量2的地址...);两个函数都用格式控制字符串在使用时都要求后面的变量个数和变量类型都要与前面字符串中给出的格式符的格式对应一致。但由于程序员的疏忽这种不匹配时有发生从而产生错误的结果甚至使系统不能工作。
而且这两个I/O函数不具有可扩充性。格式控制字符串中所有控制符只适用于内部定义数据类型。C语言的I/O函数没有提供对用户定义对象的支持。因此C语言的I/O函数没有灵活性和可扩充性不能针对实际的类对象产生重载函数。