面试问题
文章平均质量分 81
清鸿y
转战某乎可看: 淸鸿y
展开
-
大厂常见面试题----C++篇(3)
1.说一下explicit关键字explicit是用来防止由构造函数定义的隐式转换,不能自动的隐式类型转换,只能显式的进行类型转换。隐式类型转换:class Person {private: int age; public: Person() = delete; Person(int age) : age(age) {}; void Print() { std::cout << age << "\n"; }}原创 2022-03-18 20:36:04 · 1064 阅读 · 0 评论 -
大厂常见面试题----C++篇(2)
文章目录1.关键字static的作用?2.什么是内存泄漏?面对内存泄漏和指针越界,你有那些方法?3.定义和声明的区别?4.静态绑定和动态绑定的介绍?5.引用作为函数参数以及返回值的好处?1.关键字static的作用?(1)函数体内:static修饰的局部变量作用范围为该函数体,不同auto变量,其内存只被分配一次,因此其值在下次调用的时候维持了上次的值。(2)模块内:static修饰全局变量或全局函数,可以被模块内的所有函数访问,但是不能被模块外的其他函数访问,使用范围限制在声明它的模块内。(3)类原创 2022-03-16 21:06:36 · 1256 阅读 · 0 评论 -
大厂常见面试题----C++篇(1)
1.C++内存分布?(1)栈区由编译器自动分配释放,存储函数的参数值,局部变量值等,其操作方法类似于数据结构中的栈。程序自动向操作系统申请分配以及回收,速度快,使用方便,但是程序员无法控制,如果分配失败,抛出栈溢出错误注意:const局部变量也存储在栈区,栈区向地址减少的方向增长;系统为变量在栈上申请内存后,CPU需要不断地判断变量是否已结束使用的生命周期,如果生命周期结束,系统就会释放这个变量申请的栈内存,这样一来随着在栈上申请的变量增多,会对cpu 造成额外的 消耗(2)堆区一般由程序员申原创 2022-03-14 14:41:05 · 1724 阅读 · 0 评论 -
面试真题附上详细答案(1)
一、函数重载的规则,让你来写怎么实现·函数名称必须相同。·参数列表必须不同(个数不同,类型不同,参数排列顺序不同等)。·函数的返回类型可以相同也可以不同。·仅仅返回类型不同不足以成为函数的重载。C++函数重载底层原理是基于编译器的name mangling机制。编译器需要为C++所有函数,在符号表中生成唯一的标识符,来区分不同的函数。而对于同名不同参的函数,编译器在进行name mangling操作时,会通过函数名和其参数类型生成位移标识符,来支持函数重载。注:name mangling后得到的原创 2022-01-18 17:48:47 · 314 阅读 · 0 评论