过程:先是自我介绍,然后开始问问题,3个人,一个主问,一个插两句,一个坐在那里对简历发呆。然后问我平常用什么语言,答曰,以前C,现在C++
  问题:
  1、C++里虚函数的作用
  虚函数好像一直问的比较多,这里小总结一下:
  函数可以分为:类的成员函数(非静态成员函数、静态成员函数),非类的成员函数(普通的函数、虚函数)。根据这种函数的分类,知道了函数是不能同时为虚函数以及静态成员函数的。
  虚函数还可以继续细分为纯虚函数和普通的虚函数。普通的虚函数必须要有函数的实现,必须有一个关键字来修饰:virtual ,同时不能有static修饰。
  纯虚函数必须在普通的虚函数基础上加上“=0”。默认情况是只有定义,而无需实现的,即只是定义一个接口(当然也可以实现,这时实现认为是默认的一种状态显示),同时包含了纯虚函数的类表明该类是一个抽象类,不能定义该类的对象,也是说该类被定义成基类,是要被继承的,通过继承类来完成基类对象的生成。
  虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。换句话说是实现“动态联编”,好处是在程序的运行阶段动态地选择合适的成员函数,因为要在运行时才能确定,所以效率稍低。
  实现方式:在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,且与虚函数具有相同的形参个数和形参类型;如果在派生类中没有对虚函数重新定义,则它继承其基类的虚函数。这样实现接口的统一,不同定义过程。
  2、C里面的 Struct 和 C++ 里的 Class 的异同
  这里分两种情况来回答
  (1)C的struct与C++的class的区别。
  C是一种过程化的语言,struct只是作为一种复杂数据类型定义,struct中只能定义成员变量,不能定义成员函数。
  (2)C++中的struct和class的区别。
  访问权限上:class中默认的成员访问权限是private的,而struct中则是public的。
  继承上:class继承默认是private继承,而struct继承默认是public继承。
  其他:“class”这个关键字还用于定义模板参数,像“typename”,但关键字“struct”不用于定义模板参数。
  3、写一个程序,给定一个数 x ,输出不大于它的二的几次幂
  这个很简单了,是 2^n<=x ,然后输出 n 么,几行代码。
  4、说说快速排序的思想
  前面有篇文章已经总结过了,点这里。
  5、面向对象和面向过程的区别
  面向过程是自顶向下逐步编程,是分析出解决问题所需的步骤,其重要的是模块化的思想方法。
  面向对象的方法主要是把事物给对象化,包括其属性和行为。抽象出对象的目的并不在于完成某个步骤,而是描述其在整个解决问题的步骤中的行为。
  简单点说是,面向过程是你把代码封装成函数,然后依次去做一件事情;面向对象是你把要做的事情抽象成对象,告诉对象去做。面向对象三大特性(封装,继承,多态)使得在做复杂的事情的时候效率和正确率得到保证。
  6、C++多态的概念
  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态性是通过虚函数来实现的,只有重写了虚函数的才能算作是体现了C++多态性。多态的目的则是为了接口重用,不论传递过来的究竟是那个类的对象,函数都能够通过同一个接口调用到适应各自对象的实现方法。关于多态,这篇文章讲的很不错。
  7、简要说下sift特征的提取(所有问题里一个和简历上有点相关的,晕)
  前面也说过了,点这里。
  8、还有balabala的一些零碎的东西,是一些C++的基本知识
  总结:总体感觉,问的问题一般,3个面试官和我们差不多大,对他们的穿着打扮第一印象是小?丝,还有,3个人感觉有点浪费资源;
  其次,没有抓简历的要点去问,想到哪问道哪,比较不专业;
  再次,在面的过程中突然觉得自己对这方面不是很感兴趣,他们也表示做开发方向的基本只招计算机的,感觉测试没多大发展前途;
  后,选择自己喜欢的比较重要,不管有木有二面,不想去了,不要浪费时间在不喜欢的上面。