2013面试C++小结

2013年我在厦门c++求职小结

1、一般公司出的面试题目中的找错误,都是出自平常公司内部使用过程中出现的真实错误。

比如stl 中erase的使用:详细请见 :http://blog.csdn.net/yangruibao/article/details/9040045

2、在C++中指针可谓之重中之重,大家一定要掌握好基础,有的公司在会出些有关链表的题目来考察大家指针的基本用法,一会有些阅读性的程序来考察大家(大家可以适当关注下二维指针,参考;http://www.cnblogs.com/carekee/articles/1948326.html

3、对于const和define的考察,也是比较常见,因为这两者在公司的C++代码中是比较经常需要用的的。

   const可以参考:http://www.cnblogs.com/lichkingct/archive/2009/04/21/1440848.html

   define可以参考:http://blog.sina.com.cn/s/blog_686188ef0100klku.html  (注意define中"##","#"用法)

   define和typedef可以参考:http://www.cnblogs.com/kerwinshaw/archive/2009/02/02/1382428.html

4、对于C++中的类有关的知识点,也是需要有自己的理解。比如里面的虚函数和重载函数,父指针和孩子指针

     比如如下2013年我参加亿联网络公司的笔试题出的(请有兴趣的同学,放到vs或者vc6.0上实际看下代码输出效果):

#include "stdafx.h"

#include<iostream>
using namespace std;
class Father
{
public:
void name(){cout<<"Father name"<<endl;}
virtual void call(){cout<<"Father call"<<endl;}
};
class Son:public Father
{
public:
void name(){cout<<"Son name"<<endl;}
virtual void call(){cout<<"Son call"<<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
Son *s1 = new Son();
Father *f1 = (Father *)s1;
f1->call();
f1->name();
((Son*)f1)->call();
((Son*)f1)->name();
Father *f2 = new Father();
Son *s2 = (Son*)f2;
s2->call();
s2->name();
((Father*)s2)->call();
((Father*)s2)->name();
return 0; 
}

5、对于对象和结构体的引用的用法。 当然对于指针和引用的相关和区别你也是要懂的。

6、有的公司可能会考虑同学们使用的是VS工具,会给出这个编译器的调试信息,然后问你下面遇到的错误提示,怎么解决。这个就只能靠同学们平时的经验和思考问题的方法了。

7、还有编程题目,这个范围也很广泛。比如让你解析一定格式的文件,比如csv文件格式,考察代码功底,当然在短时间内,肯定没办法写出很完善的代码,比如在容错这方面可能就会处理的不好。这些都不是考官关注的,只要整体思路出来,代码基本就可以。(这里涉及到文件的读写,当然考虑编码格式的不同也是一方面:比如utf-8的BOM标记需要先去掉等等)

8、现在好多公司都是采用交叉编译出linux环境下的代码,所以有些公司会考察大家的shell脚本能不能看懂,makefile能不能看懂(现在好像cmake比较流行),还有基本的linux下的操作命令。这些在学校我也是没有接触,现在有接触点,不过也很经常百度。

http://www.chinaunix.net/old_jh/23/408225.html [精华] 跟我一起写 Makefile

linux的知识可以看,鸟哥的linux私房菜

好像要说的也就这些的,下面附上个人觉得比较有意思的面试题;

linux c面试总结:  http://blog.csdn.net/sjin_1314/article/details/39861929

一些有意思的面试题:http://blog.csdn.net/wangyuling1234567890/article/details/38565239

原文地址:https://www.cnblogs.com/hqu-ye/p/4020942.html