<分区>
如果应聘者说他的 C++ 知识是 7/10,而你想测试他对 C++ 引用资料的了解,你会问什么问题?
我想到了以下几点:
- 写一个函数声明,以指针为引用,有默认值,请他找出错误并解释。
- 将文字作为参数传递给以该参数作为引用的函数。
还有其他问题可以更好地测试候选人对 C++ 引用文献的整体知识吗?
谢谢,
在我的书中,7/10 意味着非常有能力。 9/10 表示可以针对 C++ 或模板元编程进行生成编程的人,10 是编写可移植库的人。我不相信技巧问题——只相信广泛的知识。所以,这是我要问的问题。
- 异常安全的代码是什么意思。
- is-a 关系和 has-a 关系之间的区别和陷阱是什么。
- 如果数组条目是多态的,为什么要使用指针。
- std::vector 和 std::deque 有什么区别。
- std::map 有什么用?
- 什么是 RAII 或者您使用什么策略来防止资源泄漏。
- 为什么要声明一个析构函数 virtual ?
- 提供部分模板特化是什么意思?
- 什么是仿函数?
- mutable 关键字的作用是什么?对于在签名末尾使用 const 声明的函数意味着什么。
- 为什么要覆盖编译器生成的函数。
- 在 STL 词汇表中将变量绑定(bind)到函数是什么意思。
- 为什么在 C 函数上使用 std::string 是个好主意。
- 您是否知道任何优秀的 C++ 库,它们有什么特别之处?
- 您使用什么策略来确保代码可移植。
- 作为应用程序程序员,您*可以使用模板做什么?
- C++ STL 容器是否会造成性能瓶颈,请举个例子。
- 您是否可以想到需要自定义内存分配的特定场景。
- 什么是智能指针,它们智能吗?
- 什么是 pimpl 习惯用法/编译器防火墙,或者您如何确保跨依赖项的编译时间短。
- 为什么析构函数的异常是坏的?你能想出办法解决这个问题吗?
- 什么是堆分配,什么是栈分配……calloc 是邪恶的吗?
- 什么是循环依赖,您能告诉我一种或多种使 C++ 编程复杂化的方式吗。
- 什么是 RTTI?
- 您能想到任何能让您的生活更轻松的运行时机制(例如,异常机制)吗?
- Java 和 C# 被认为是令人惊叹的语言。什么项目应该用 C++ 编写?
- 你对多重继承有什么看法?
- 你能想出使用预处理器的理由吗?
- 将变量声明为 const 有什么好处?
- 您使用什么工具进行开发?
可以持续很长时间 :D 但 30 岁就可以了,如果你需要更多就问 :D