
C++服务器开发面试题
吃着火锅x唱着歌
这个作者很懒,什么都没留下…
展开
-
C++ 服务器开发面试题整理(4)
1.static_cast, dynamic_cast, const_cast, reinterpret_cast区别(1)const_cast用于将const变量转为非const的。(2)static_cast用的最多,对于各种隐式转换,非const转const,void*转指针等, static_cast能用于多态向基类转化,如果向派生类转,能成功但是不安全。(3)dynamic_cast用于动态类型转换。只能用于含有虚函数的类,用于类层次间的向上和向下转化。只能用于转换继承体系中的类型的指针或引原创 2021-08-06 21:49:10 · 456 阅读 · 1 评论 -
C++ 服务器开发面试题整理(3)
1.可以在构造函数和析构函数中调用虚函数吗?可以,但基类构造函数中调用的仍然是基类版本的虚函数,派生类中调用的仍然是派生类版本的基函数。如果不是这样的话,一般派生类的构造函数会调用基类的构造函数来构造基类对象,如果这个基类的构造函数中调用了虚函数,如果这个虚函数是派生类的,由于派生类还没有构造好,会访问不确定的值,容易造成程序错误。2.指针和引用的区别?(1)指针保存的是所指对象的地址,引用是所指对象的别名,指针需要通过解引用间接访问,而引用是直接访问。(2)指针可以改变所指向的对象,引用必须永远绑原创 2020-06-04 16:48:39 · 311 阅读 · 0 评论 -
C++ 服务器开发面试题整理(2)
1.虚函数怎样实现的(1)虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。(2)在这个表中,主是要一个类虚函数的地址表。虚函数表中可能还存在其他的内容,如用于RTTI的type_info类型,或者直接将虚基类的指针存放在虚表中。(3)C++的编译器应该保证虚函数表的指针存在于对象实例中最前面的位置,这样可以保证最快的取虚函数表效率。2.C++怎样实现多态(1)静态多态通过函数重载和模板实现,编译时确定。(2)动态多态通过虚原创 2020-06-04 14:25:43 · 573 阅读 · 0 评论 -
C++ 服务器开发面试题整理(1)
1.extern关键字作用(1)extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他文件中寻找其定义。(2)C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时无法找到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。注:(1)extern在声明其他文件中的数组时,若其他文件中的char a[原创 2020-06-03 16:40:52 · 1268 阅读 · 0 评论