衰落中的C++
关键字: c++不知不觉之中时间过了几年,忽然发觉C/C++在程序员中的地位已经大不如前了。搜索一下SourceForge,发现现在java和C#的项目当真不少,而C++的项目叫得出名的似乎还是原来那些老帮菜,没有多少新意。
这几天公司面试程序员,我出了几道c/c++的试题。说实话,我是非常不喜欢在面试时给人出太详细的笔试题的,但是因为招的人有c++的要求,就挑了几个我个人认为非常基础的问题考了一下,结果让人很吃惊,很多自称“精通C++”的孩子,居然连最简单的问题也会答错,不少还是清华出来的有工作经验的本科生,硕士生。贴出来让大家看看,是不是我的要求太高了。
1. 声明一个函数指针
2. int (*A)[];和
int *A [] 有何不同?
3. C++中,struct是否可以有构造/析构函数?struct和class有何不同?
4. 声明一个模板类
5. #include <stdio.h>
class A
{
public:
void Func() { printf("A\n"); }
};
class B : public A
{
public:
void Func() { printf("B\n"); }
};
int main()
{
A* a = new B();
a->Func();
delete a;
return 0;
}
6. 什么是虚函数表?
7. 写一个简单的递归函数计算N!
int Factorial(int n)
{
}
int main()
{
int n;
cin >> n;
printf("N!=%d\n", Factorial(n));
return 0;
}
8. 解释关键字:volatile; const
评论
1. 声明一个函数指针
如:void (*fp_print)(char *s)
声明了一个函数指针,它指向一个接受一个char*型的参数,并且无返回值的函数。
2. int (*A)[];和
int *A [] 有何不同?
前者声明了一个指针,它指向了一个以大小未知的数组为元素的数组。
后者声明了一个大小未知的以int*型为元素的数组。
3. C++中,struct是否可以有构造/析构函数?struct和class有何不同?
可以有。struct/class不同的地方是他们成员的默认访问权限不同,struct默认public,class默认private。
4. 声明一个模板类
template < typename T >
class MyClass;
5. #include
class A
{
public:
void Func() { printf("A\n"); }
};
class B : public A
{
public:
void Func() { printf("B\n"); }
};
int main()
{
A* a = new B();
a->Func();
delete a;
return 0;
}
输出:A(换行)
6. 什么是虚函数表?
虚函数表实际上是处于类头部的一个函数入口地址表,用于实现在运行时确定函数入口,实现多态。
7. 写一个简单的递归函数计算N!
int Factorial(int n)
{
}
int main()
{
int n;
cin >> n;
printf("N!=%d\n", Factorial(n));
return 0;
}
int Factorial (int n)
{
return n > 1 ? n * Factorial(n - 1) * n : 1;
}
8. 解释关键字:volatile; const
volatile是指被修饰的变量随时会被修改,要求编译器不要对这个变量作任何优化。
const表示被修饰的变量不能被修改,是一个常量。当它放在类成员函数的参数列表后面时,表示这个成员函数不会修改所在类的其它成员变量。
不过既然写精通,就好好花花时间练练内功,给人揭穿了就丢脸了。说句实在话,大多数面试题都不难,只要粗通,就可过关了。
我也想好好再敲打敲打Assembler,不过没空。一大梦想是有天经济自由了,给FreeBSD做做贡献去。
however, when engaging embedded development, your skills in assembler is still helpful, and means good pay sometimes.
要是“精通C++”而那几个问题都答不出来的话,买块豆腐撞死吧。
发表评论
- 浏览: 2391 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
链接
- cplusplus.com - The C++ Resources Network
- Rootkit
- Free Soft Foundation directory
- Erlang在线文档
- Ruby
- MIT Scheme
- Securityfocus
- Haskell
- CodeGuru
- Code Project
- 京东购物
- 在线词典
- MS security center
- SANS Top 20
- 看雪
- 邪恶八进制
- ietf
- Attrition
- blackcode
- US-CERT Vulnerability Notes
- OSVDB
- xfocus
- CVE
- Secure Root
- Start Plaza
- 绿色软件联盟
- 棋圣道场
- 驱动开发网
- 虚拟机之家
- 共创联盟
- fresh meat
- Loki
- MinGW
- boost
- cygwin
- apache
- lcc
- Debugging Tools in Windows
- 灰狐
- 51Testing
- ReactOS
- java开源
- OpenSource C#
- ACE
- W3C
- SourceForge
- Enterprise Integration Patterns
- OWASP
- InfoQ






评论排行榜