记一次边锋面试

大三电子专业第一次去面试c++岗位,还是游戏公司,专业差还是有点大的而且面试让我记忆尤新,so来记录一次。

填表

首先是个人信息记录表,如果面试技术岗还会有一份面试题,有几道比较基础的选择题,然后有一道lambda的编程题,逻辑题,内存泄漏的经历,还有就是 cocos2d 的使用经历和题目。虽说这个对后面的面试没什么影响。

技术面

和我一起去的同学技术面特别快,也比较简单,但是我就面了一个多小时,相当的煎熬。。首先是看简历来问你项目经历,这个只要项目是自己做的基本没什么问题,都能答的出来。
之后是 c++ 的题目,三个特性,多态是什么,比较基础,然后问了重写的情况。

class A
{
public:
    void show()
    {
        cout << "A" << endl;
    }
};
class B : public A
{
public:
    void show()
    {
        cout << "B" << endl;
    }
};
int main()
{
    B b;
    A *a = &b;
    a->show(); // A
    return 0;
}

这个问题是很基础,之后问我为什么是这样的。。基础不扎实的我就不知道为什么了。
因为 a 是基类的指针,只能调用基类的 show。

下一个问题一样

int main()
{
    A a;
    B *b = &a;
    b->show();
    return 0;
}

会显示什么? 我不知道,但我知道把派生类的指针指向基类是不允许的。如果强制转换呢?好吧,我又不知道了。。
现在知道好像有点迟了 会显示 B ,然后如果是 virtual 会怎么样。看上面的链接。
接着还问了快速排序是怎么样的,我答出来了,然后问你有优化过快速排序吗?
???
没有。现在知道好像有点迟了
通过随机设定哨兵,较短序列用插排比快排更好,重复元素一起处理,能比书本上的排序快好的呀,为什么我在书上都看不到怎样的优化。。。
然后后面在扯内存泄漏的问题,我真的不会,不应该瞎扯的。
最后还有一道算法题

给你一个数组 B 是排序过的,可能是升序,可能是反序,也可能是其他排序(比如2是最小的、2也可能是最大的,因为是纸牌游戏嘛)
然后给你一个数组 A ,里面的数字是一张一张发牌给你,你要把收到的牌变成 B 的排序顺序。

一开始没有很好的理解题目,后来理解了。。
拿发下来的纸牌和手牌 在 B 里比较哪一个先出现,那就放在牌的左边和右边,再通过二分的思想排序。

之后就是 hr 总管的面试,了解个人和性格啥的,然后就好了。。。。
回去啃c++、cocos2d

你可能感兴趣的:(面试)