C++C/C++C++面试

C++ 面试

2018-07-24  本文已影响46人  不要人夸颜色好

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

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

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

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

所以,由上面的矛盾可知,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.

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

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

上一篇 下一篇

猜你喜欢

热点阅读