排序
面试题:C++ 中野指针和悬挂指针的区别?
野指针(Wild Pointer) 定义:野指针是指未初始化或指向已释放内存的指针,其值是随机的或无效的。 产生原因: 未初始化:指针声明后未赋值,指向随机地址。int* ptr; // 未初始化,ptr 是野指...
面试题:C++ 中什么是深拷贝?什么是浅拷贝?写一个标准的拷贝构造函数?
在C++中,拷贝是指用一个对象初始化另一个对象。拷贝分为深拷贝(Deep Copy)和浅拷贝(Shallow Copy),它们的区别在于如何处理指针或动态分配的资源。 1. 浅拷贝(Shallow Copy) 定义:...
面试题:什么是 C++ 中的虚继承?
在 C++ 中,虚继承(Virtual Inheritance) 是一种解决多重继承中菱形继承问题(Diamond Problem)的机制。它通过确保在继承链中共享同一个基类子对象,避免重复继承导致的二义性和资源浪费。 1...
面试题:C++ 中 extern 有什么作用?extern “C” 有什么作用?
在 C++ 中,extern 是一个关键字,用于声明变量或函数的外部链接性。 它的主要作用是告诉编译器某个变量或函数是在其他地方定义的,而不是在当前文件中定义的。 extern 'C' 则是用于解决 C++ 与...
面试题:C++ 中类定义中 delete 关键字和 default 关键字的作用?
在 C++ 中,delete 和 default 是两个用于控制类成员函数行为的关键字。它们通常用于显式地管理类的特殊成员函数(如构造函数、析构函数、拷贝构造函数、赋值运算符等)的生成和使用。 1. delet...
面试题:C++ 中 map 和 unordered_map 的区别?分别在什么场景下使用?
在 C++ 中,std::map 和 std::unordered_map 是两种常用的关联容器,用于存储键值对。它们的核心区别在于底层实现和性能特性,因此适用于不同的场景。 1. std::map 底层实...
面试题:C++ 中 volatile 关键字的作用?
在 C++ 中,volatile 关键字用于告诉编译器,被修饰的变量可能会被程序以外的因素(如硬件、多线程、信号处理等)修改,因此编译器不应对该变量进行优化(如缓存到寄存器或重排序访问顺序)。 1...
面试题:C++ 中 move 有什么作用?它的原理是什么?
在 C++ 中,std::move 是一个用于实现移动语义的关键工具。它的作用是将对象的资源所有权从一个对象转移到另一个对象,从而避免不必要的拷贝操作,提高性能。以下是 std::move ...
面试题:什么是多态?简单介绍下 C++ 的多态?
多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许不同的对象对同一消息作出不同的响应。在 C++ 中,多态主要通过虚函数(Virtual Function)和继承机制实现。 1. 多态的基本概...
面试题:什么是大端序?什么是小端序?
大端序(Big Endian) 和 小端序(Little Endian) 是两种不同的字节序(Byte Order),用于描述多字节数据(如整数、浮点数)在内存中的存储方式。它们的区别在于字节的排列顺...