排序
面试题:C++ 中构造函数可以是虚函数吗?
在 C++ 中,构造函数不能是虚函数。这是由 C++ 的语言设计和对象构造机制决定的。以下是详细原因和解释: 1. 为什么构造函数不能是虚函数? (1)对象构造的顺序 在 C++ 中,对象的构造是从基类...
面试题:C++ 中虚函数的原理?
在 C++ 中,虚函数(Virtual Function)是实现运行时多态(Runtime Polymorphism)的关键机制。它允许在基类中声明一个函数,并在派生类中重写该函数,从而通过基类指针或引用调用派生类的实现...
面试题:什么是多态?简单介绍下 C++ 的多态?
多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许不同的对象对同一消息作出不同的响应。在 C++ 中,多态主要通过虚函数(Virtual Function)和继承机制实现。 1. 多态的基本概...
面试题:C++ 中为什么要使用 nullptr 而不是 NULL?
在C++中,nullptr 是C++11引入的关键字,用于表示空指针。与传统的 NULL 相比,nullptr 具有以下优势: 1. 类型安全 NULL 的问题: 在C++中,NULL 通常被定义为 0...
面试题:C++ 中为什么要使用 std::array?它有什么优点?
在C++中,std::array 是C++11引入的一个容器类,用于表示固定大小的数组。与传统的C风格数组相比,std::array 提供了更多的功能和安全性。以下是使用 std::array 的主要原...
面试题:C++ 的 function、bind、lambda 都在什么场景下会用到?
在C++中,function、bind和lambda是用于处理函数对象和回调的强大工具,各自有不同的应用场景。 1. std::function std::function 是一个通用的函数包装器,可以存储、复制和调用任何可调用对象...
面试题:C++ 中类定义中 delete 关键字和 default 关键字的作用?
在 C++ 中,delete 和 default 是两个用于控制类成员函数行为的关键字。它们通常用于显式地管理类的特殊成员函数(如构造函数、析构函数、拷贝构造函数、赋值运算符等)的生成和使用。 1. delet...
面试题:C++ 中 enum 和 enum class 的区别?
在 C++ 中,enum 和 enum class 都用于定义枚举类型,但它们有显著的区别,主要体现在作用域、类型安全和隐式转换方面。 1. 作用域(Scope) enum(传统枚举): 枚举值是暴露在枚举类型所在的...
面试题:C++ 中 using 和 typedef 的区别?
在 C++ 中,using 和 typedef 都用于定义类型别名,但 using 的功能更强大且更灵活。以下是它们的区别和具体用法: 1. 基本功能 typedef: 用于定义类型别名,语...
面试题:C++ 什么场景下需要用到移动构造函数和移动赋值运算符?
在 C++ 中,移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment Operator)是 C++11 引入的重要特性,用于优化资源管理,特别是在涉及动态内存分配或昂贵资源(如文件句柄、网...