Skip to content

豆包模拟面试

  • 问题:说说 if 语句和 switch 语句的区别?

if 语句灵活性高,适合各类条件判断(包括范围判断、多条件组合等);switch 语句适用于简单的等值判断,代码结构更简洁、可读性更强。

  • 问题:for 循环和 while 循环在用法上有什么不同?

for 循环包含初始化、循环条件、递增 / 递减表达式,逻辑集中,适用于已知循环次数的场景(如遍历数组);while 循环仅包含循环条件,需在循环体内控制变量变化,适用于未知循环次数、满足条件就持续循环的场景。

  • 问题:C++ 中引用是什么?它和指针有什么不同?

引用是变量的别名,与原变量指向同一块内存;它和指针的不同在于,引用初始化后不能再指向其他变量,且无需解引用操作,使用更简洁安全。

  • 问题:C++ 中如何进行动态内存分配?使用时需注意什么?

动态内存分配用 new 和 delete 操作符,new 用于分配内存,delete 用于释放内存;使用时需注意避免内存泄漏,即分配的内存必须用 delete 释放,否则程序长期运行会出问题。

  • 问题:C++ 的异常处理机制是什么?如何使用?

异常处理机制用于处理程序运行时错误,核心关键字是 try、catch、throw;try 块放可能出错的代码,出错时用 throw 抛出异常,catch 块捕获异常并处理。

  • 问题:C++ 中类和对象的关系是什么?

类是对象的模板,定义了对象的属性(成员变量)和行为(成员函数);对象是类的实例,根据类的模板创建,拥有类定义的具体属性和行为。

  • 问题:虚函数在面向对象编程里有什么作用?

虚函数用于实现动态联编(运行时绑定),即程序运行时才决定调用哪个类的成员函数,能提高代码的可扩展性和可维护性。

  • 问题:你了解 C++ 的模板吗?它有什么优点和缺点?

模板是 C++ 实现泛型编程的重要特性,可让同一套代码处理多种数据类型;优点是减少代码冗余、提升开发效率(如 STL 的 vector、list 等容器是模板类);缺点是可能导致代码膨胀(编译时为不同数据类型生成单独代码),调试难度较高。

  • 问题:C++ 中类的继承有哪几种类型,每种类型的特点又是什么呢?

C++ 的继承有公有继承、私有继承和保护继承。公有继承呢,基类的公有成员和保护成员在派生类中保持不变,私有成员不可访问。私有继承,基类的公有成员和保护成员在派生类中变成私有成员,私有成员还是不可访问。保护继承呢,基类的公有成员在派生类中变成保护成员,保护成员不变,私有成员同样不可访问。

  • 位运算符?