C++ 面试

作者: 不要人夸颜色好 | 来源:发表于2018-07-24 18:58 被阅读46次

为什么C++member function template不能是virtual的 ?

一个类的成员函数不能既是 template 又是 virtual 的

class Animal{
  public:
      template<typename T>
      virtual void make_sound(){
        //...
      }
};

因为C++的编译与链接模型是"分离"的 (至少是部分原因吧)。

  • Unix/C开始,一个C/C++程序就可以被分开编译,然后用一个linker链接起来。这种模型有一个问题,就是各个编译单元可能对另一个编译单元一无所知。
  • 一个 function template最后到底会被 instantiate为多少个函数,要等整个程序(所有的编译单元)全部被编译完成才知道。
  • 同时,virtual function的实现大多利用了一个"虚函数表"的东西,这种实现中,一个类的内存布局(或者说虚函数表的内存布局)需要在这个类编译完成的时候就被完全确定。

所以,由上面的矛盾可知,C++member function 不能既是 template 又是 virtual 的。


reverse 一个字符串

手动循环还是使用系统库函数
是否返回一个新的字符串,或者只是返回原来的
是否支持 UnicodeUTF-8


C++ 和其他语言有什么不同

主观判断应聘者的答案


shared_ptr 内部实现,(是否是多线程安全的)

shared_ptr 本身是线程安全,但指向的对象操作不是线程安全


多线程中栈与堆是公有的还是私有的

栈私有, 堆公有


Hash 表的原理

处理关键字 key 冲突的办法 : 开放定址法, 链地址法


什么是拷贝构造函数(如何调用)

拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:

  • 通过使用另一个同类型的对象来初始化新创建的对象。
  • 复制对象把它作为参数传递给函数。
  • 复制对象,并从函数返回这个对象。

请问C++的类和C里面的struct有什么区别?

C++中的类具有成员保护功能,并且具有继承,多态这类特点,而c里的struct没有
c里面的struct没有成员函数,不能继承,派生等等.


什么是内存泄漏?面对内存泄漏和指针越界,你有哪些方法?你通常采用哪些方法来避免和减少这类错误?

用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元即为内存泄露。

使用的时候要记得指针的长度。

malloc的时候得确定在那里free.

对指针赋值的时候应该注意被赋值指针需要不需要释放.

动态分配内存的指针最好不要再次赋值.

相关文章

  • C++基础

    c++面试题

  • 一文读懂C++拷贝构造函数?

    C++面试中,经常有面试官问“请你说一下C++拷贝构造函数是什么?“。而我们在阅读STL等很多C++的源码时,我们...

  • 2019-03-19

    今天开始准备C++面试。0基础学习C++。一直更新到拿到C++的offer。

  • C和C++的区别和联系(扩展知识)

    复习整理:C/C++区别与联系; 关于C和C++的区别是面试中经常会被问到的问题,本着即将面试的心态,进行知识整理...

  • 路线

    超级详细Linux环境后台开发C++学习路线,已拿鹅厂offer 另一篇文章面试经验:《腾讯C++后台开发面试笔试...

  • 聊聊IT技术面试

    本人主要开发经历是Linux C++后端。负责一个小团队,所以这两年也面试了各种岗位。面试过JS前端、c++后端、...

  • go语言的++/--操作

    go语言的++/--操作 C/C++程序员的窘境 C/C++程序员在面试的时候经常会被面试官问到++/--的问题而...

  • C++ 内存模型(1)--static

    面试过C++的同学都知道,面试官最喜欢问的问题之一就是C++内存模型问题。例如static 、堆、栈等网上对这方面...

  • 应届生如何自学 Java、成功拿下腾讯 Offer?

    前言 众所周知,鹅厂后台一直以C++为重,面试官也是做C++开发。但是语言只是工具,对代码的理解才是核心。 面试时...

  • 五万字长文:C/C++ 面试知识总结(上)

    C/C++ 面试知识总结 这是一篇五万字的C/C++面试知识点总结,包括答案:这是上篇,下篇今天也推送了,需要的同...

网友评论

    本文标题:C++ 面试

    本文链接:https://www.haomeiwen.com/subject/jgmymftx.html