北京清彦科技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。

全部评论

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结: 27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务