北京清彦科技C++开发一面 面经
1. 说说C++的多态机制,如何实现多态?
答案:
多态是面向对象的三大特性之一,允许用基类指针或引用调用派生类的函数。
多态的分类:
- 编译时多态:函数重载、运算符重载、模板
- 运行时多态:虚函数
实现运行时多态的条件:
- 必须有继承关系
- 基类中必须有虚函数
- 通过基类指针或引用调用虚函数
虚函数的工作原理:
- 每个包含虚函数的类都有虚函数表
- 每个对象有虚函数指针指向虚函数表
- 调用虚函数时通过虚函数指针查表找到实际函数
多态的优势:
- 提高代码的可扩展性和可维护性
- 实现接口和实现的分离
- 支持开闭原则
2. Linux中export命令的作用是什么?
答案:
export用于设置或显示环境变量,使变量可以被子进程继承。
主要用途:
- 设置环境变量:将普通变量转换为环境变量
- 查看环境变量:不带参数时显示所有环境变量
- 临时修改PATH:添加新的可执行文件路径
常见使用场景:
- 配置开发环境,如设置JAVA_HOME、PATH
- 设置编译选项,如CC、CXX编译器
- 配置库路径,如LD_LIBRARY_PATH
注意事项:
- export设置的变量只在当前会话有效
- 永久生效需要写入配置文件如.bashrc或.profile
- 子进程可以继承但不能修改父进程的环境变量
3. Linux中chmod命令的作用和使用方式?
答案:
chmod用于修改文件或目录的权限。
权限的分类:
- 读权限r:可以查看文件内容或列出目录
- 写权限w:可以修改文件或在目录中创建删除文件
- 执行权限x:可以执行文件或进入目录
权限的对象:
- 所有者u:文件的拥有者
- 所属组g:文件所属的用户组
- 其他人o:其他所有用户
使用方式:
- 数字方式:chmod 755 file,7=rwx,5=r-x
- 符号方式:chmod u+x file,给所有者添加执行权限
常用权限设置:
- 644:文件的常用权限,所有者可读写,其他人只读
- 755:可执行文件的常用权限,所有者可读写执行,其他人可读执行
- 777:所有人都有全部权限,不安全,不推荐
4. 什么是CGI?它的工作原理是什么?
答案:
CGI(Common Gateway Interface)是Web服务器与外部程序交互的标准接口。
工作流程:
- 用户通过浏览器发送请求到Web服务器
- Web服务器接收请求,启动CGI程序
- CGI程序处理请求,生成动态内容
- CGI程序将结果返回给Web服务器
- Web服务器将结果发送给浏览器
CGI的特点:
- 语言无关,可以用任何语言编写
- 每个请求都会创建新进程,开销大
- 简单易用,但性能较低
CGI的应用场景:
- 处理表单提交
- 生成动态网页
- 与数据库交互
- 文件上传下载
CGI的替代方案:
- FastCGI:常驻进程,性能更好
- 应用服务器:如Tomcat、Node.js
- 现代Web框架:如Django、Flask、Express
5. MySQL中索引的作用和类型有哪些?
答案:
索引是数据库中用于加速查询的数据结构。
索引的作用:
- 加速查询:避免全表扫描,快速定位数据
- 加速排序:索引本身有序,可以避免排序操作
- 保证唯一性:唯一索引保证数据不重复
- 加速表连接:提高JOIN操作的效率
索引的类型:
- 主键索引:唯一且不能为空,一个表只能有一个
- 唯一索引:值必须唯一,但可以为空
- 普通索引:最基本的索引,没有限制
- 全文索引:用于文本搜索,支持模糊匹配
- 组合索引:多个列组成的索引,遵循最左前缀原则
索引的优缺点:
- 优点:大幅提高查询速度
- 缺点:占用存储空间,降低写入性能
何时使用索引:
- 经常作为查询条件的列
- 经常排序或分组的列
- 经常作为连接条件的列
6. MySQL中如何创建、查询、修改和删除表?
答案:
创建表:
- 使用CREATE TABLE语句
- 定义列名、数据类型、约束
- 可以设置主键、外键、默认值等
查询表结构:
- DESCRIBE或DESC查看表结构
- SHOW CREATE TABLE查看建表语句
- SHOW TABLES查看所有表
修改表:
- ALTER TABLE ADD添加列
- ALTER TABLE MODIFY修改列类型
- ALTER TABLE DROP删除列
- ALT
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
C++八股文全集 文章被收录于专栏
本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。

查看9道真题和解析