排序
面试题:C++ 中析构函数一定要是虚函数吗?
在 C++ 中,析构函数是否需要声明为虚函数取决于类的设计用途,特别是是否会被继承以及是否会被基类指针指向派生类对象。以下是详细分析: 1. 什么时候析构函数必须是虚函数? 当满足以下条件时...
面试题:C++ 什么场景下需要用到移动构造函数和移动赋值运算符?
在 C++ 中,移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment Operator)是 C++11 引入的重要特性,用于优化资源管理,特别是在涉及动态内存分配或昂贵资源(如文件句柄、网...
面试题:什么是 C++ 中的虚继承?
在 C++ 中,虚继承(Virtual Inheritance) 是一种解决多重继承中菱形继承问题(Diamond Problem)的机制。它通过确保在继承链中共享同一个基类子对象,避免重复继承导致的二义性和资源浪费。 1...
面试题:什么是 C++ 的函数重载?它的优点是什么?和重写有什么区别?
在 C++ 中,函数重载(Function Overloading)是一种允许在同一作用域内定义多个同名函数,但这些函数的参数列表必须不同的特性。通过函数重载,可以使用相同的函数名来实现不同的功能,从而提...
面试题:什么是 C++ 的运算符重载?
C++ 中的运算符重载(Operator Overloading)是一种允许用户自定义类类型对象的运算符行为的特性。通过运算符重载,可以使自定义类型的对象像内置类型一样使用运算符(如 +、-、*、/ 等)。 1. ...
面试题:C++ 中 struct 和 class 的区别?
在 C++ 中,struct 和 class 都用于定义自定义数据类型,但它们在默认访问权限和继承行为上有一些区别。以下是它们的详细对比: 1. 默认访问权限 struct: 默认的成员访问...
面试题:C++ 中 struct 和 union 的区别?如何使用 union 做优化?
在 C++ 中,struct 和 union 都是用于定义复合数据类型的工具,但它们的用途和行为有显著区别。以下是它们的区别以及如何使用 union 进行优化。 1. struct 和 union 的区别 特性structunion内存...
面试题:C++ 中 using 和 typedef 的区别?
在 C++ 中,using 和 typedef 都用于定义类型别名,但 using 的功能更强大且更灵活。以下是它们的区别和具体用法: 1. 基本功能 typedef: 用于定义类型别名,语...
面试题:C++ 中 enum 和 enum class 的区别?
在 C++ 中,enum 和 enum class 都用于定义枚举类型,但它们有显著的区别,主要体现在作用域、类型安全和隐式转换方面。 1. 作用域(Scope) enum(传统枚举): 枚举值是暴露在枚举类型所在的...
面试题:C++ 中 new 和 malloc 的区别?delete 和 free 的区别?
在 C++ 中,new/delete 和 malloc/free 都用于动态内存管理,但它们有显著的区别: 1. new 和 malloc 的区别 语言: new 是 C++ 的运算符。 malloc 是 C ...