排序
面试题:C++ 中 extern 有什么作用?extern “C” 有什么作用?
在 C++ 中,extern 是一个关键字,用于声明变量或函数的外部链接性。 它的主要作用是告诉编译器某个变量或函数是在其他地方定义的,而不是在当前文件中定义的。 extern 'C' 则是用于解决 C++ 与...
面试题: C++ 中 explicit 的作用?
在 C++ 中,explicit 是一个用于修饰构造函数或转换运算符的关键字,它的作用是禁止隐式类型转换,防止编译器自动执行不期望的转换,从而提高代码的安全性和可读性。 1. 用于构造函数 当 explic...
面试题:C++ 中 final 关键字的作用?
在 C++ 中,final 是一个用于限制类或虚函数进一步派生或重写的关键字。它的主要作用是增强代码的安全性和可维护性。 1. 用于类 当 final 用于类时,表示该类不能被继承。 语法: class Base fi...
面试题:C++ 中野指针和悬挂指针的区别?
野指针(Wild Pointer) 定义:野指针是指未初始化或指向已释放内存的指针,其值是随机的或无效的。 产生原因: 未初始化:指针声明后未赋值,指向随机地址。int* ptr; // 未初始化,ptr 是野指...
面试题:什么是内存对齐?为什么要内存对齐?
什么是内存对齐? 内存对齐是指数据在内存中的存储位置必须满足特定条件,通常是某个值的倍数(如 4 字节、8 字节等)。例如,一个 4 字节的整数通常需要存储在地址为 4 的倍数的位置。 为什么...
面试题:C++ 中四种类型转换的使用场景?
在 C++ 中,类型转换(Type Casting)用于将一种数据类型转换为另一种数据类型。C++ 提供了四种类型转换运算符:static_cast、dynamic_cast、const_cast 和 reinterpret_cast。每种类型转换都有...
面试题:C++ 中 volatile 关键字的作用?
在 C++ 中,volatile 关键字用于告诉编译器,被修饰的变量可能会被程序以外的因素(如硬件、多线程、信号处理等)修改,因此编译器不应对该变量进行优化(如缓存到寄存器或重排序访问顺序)。 1...
面试题:什么是多态?简单介绍下 C++ 的多态?
多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许不同的对象对同一消息作出不同的响应。在 C++ 中,多态主要通过虚函数(Virtual Function)和继承机制实现。 1. 多态的基本概...
面试题:C++ 中虚函数的原理?
在 C++ 中,虚函数(Virtual Function)是实现运行时多态(Runtime Polymorphism)的关键机制。它允许在基类中声明一个函数,并在派生类中重写该函数,从而通过基类指针或引用调用派生类的实现...
面试题:C++ 中构造函数可以是虚函数吗?
在 C++ 中,构造函数不能是虚函数。这是由 C++ 的语言设计和对象构造机制决定的。以下是详细原因和解释: 1. 为什么构造函数不能是虚函数? (1)对象构造的顺序 在 C++ 中,对象的构造是从基类...