C++面试常见问题解答
需积分: 9 174 浏览量
更新于2024-07-20
收藏 262KB PDF 举报
C 面试问与答攻略
本文总结了 C 面试中常见的问题和答案,涵盖了虚函数、纯虚函数、虚析构函数、i++和++i 等关键知识点。
1. 虚函数和纯虚函数
虚函数是为了实现动态绑定的机制,声明格式为 `virtual ReturnType FunctionName(Parameter)`。纯虚函数是为了派生接口,声明格式为 `virtual ReturnType FunctionName() = 0`。理解虚函数和纯虚函数的区别是 C 面试中的一个重要考点。
2. 基类的虚析构函数
基类需要虚析构函数是因为,如果不使用虚析构函数,可能会导致资源泄漏。标准规定,当derived class经由一个base class指针被删除而该base class的析构函数为non-virtual时,将发生未定义行为。解决方法是为多态基类声明一个虚析构函数。
3. i++和++i 的区别
i++和++i 都是自增运算符,但是它们的实现代码不同。i++ 的实现代码为:
```c
int operator++(int)
{
int temp = *this;
++*this;
return temp;
}
```
++i 的实现代码为:
```c
int& operator++()
{
*this += 1;
return *this;
}
```
i++ 返回的是 i 的值,而 ++i 返回的是 i+1 的值。++i 是一个确定的值,是一个可修改的左值。例如,`cout << ++(++(++i)) << endl;` 就是一个合法的语句。
在实际应用中,i++ 和 ++i 的选择取决于具体的需求。如果需要返回 i 的值,可以使用 i++,如果需要返回 i+1 的值,可以使用 ++i。
本文总结了 C 面试中常见的问题和答案,涵盖了虚函数、纯虚函数、虚析构函数、i++和++i 等关键知识点,为 C 面试提供了有价值的参考。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2018-07-15 上传
2014-08-16 上传
2020-11-22 上传
2015-09-27 上传
2009-04-13 上传
2008-11-16 上传
欧阳少侠
- 粉丝: 5
- 资源: 36
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录