排序
面试题:C++ 中虚函数的原理?
在 C++ 中,虚函数(Virtual Function)是实现运行时多态(Runtime Polymorphism)的关键机制。它允许在基类中声明一个函数,并在派生类中重写该函数,从而通过基类指针或引用调用派生类的实现...
面试题:C++ 中 using 和 typedef 的区别?
在 C++ 中,using 和 typedef 都用于定义类型别名,但 using 的功能更强大且更灵活。以下是它们的区别和具体用法: 1. 基本功能 typedef: 用于定义类型别名,语...
面试题:C++ 中函数模板和类模板有什么区别?
在C++中,函数模板(Function Template) 和 类模板(Class Template) 是模板编程的两个核心概念。它们的主要区别在于用途和实例化方式。以下是它们的详细区别: 1. 函数模板(Function Templa...
面试题:C++ 的条件变量为什么要配合锁使用?
在 C++ 中,条件变量(std::condition_variable)通常需要与锁(如 std::mutex)配合使用,主要原因是为了解决 竞争条件 和 线程同步 的问题。以下是详细解释: 1.&nb...
面试题:什么情况下会出现内存泄漏?如何避免内存泄漏?
内存泄漏(Memory Leak)是指程序在动态分配内存后,未能正确释放该内存,导致内存占用不断增加,最终可能耗尽系统内存资源。 内存泄漏是 C++ 等手动管理内存的语言中常见的问题。 什么情况下会...
面试题:C++ 中如何设计一个线程安全的类?
在C++中设计一个线程安全的类,意味着在多线程环境下,类的成员函数可以被多个线程安全地调用,而不会导致数据竞争或未定义行为。以下是设计线程安全类的一些关键步骤和注意事项: 1. 使用互斥...
面试题:C++ 中 malloc 申请的内存,可以用 delete 释放吗?
在 C++ 中,malloc 申请的内存不可以用 delete 释放,反之亦然。malloc 和 delete 是两种不同的内存管理机制,它们的行为和实现方式有本质区别。 为什么不能混用...
面试题:C++ 如何调用 C 语言的库?
在C++中调用C语言库时,由于C++和C的编译器和链接器对函数名称的处理方式不同(C++支持函数重载,因此会对函数名称进行名称修饰(name mangling),因此需要采取一些措施来确保C++能够正确调用C...
面试题:C++11 中有哪些常用的新特性?
C++11 是 C++ 语言的一次重大更新,引入了许多新特性,极大地提升了代码的简洁性、安全性和性能。 以下是 C++11 中常用的新特性: 1. 自动类型推导(auto) 作用:编译器自动推导变量的类型。 ...
面试题:请介绍 C++ 中 unique_ptr 的原理?
std::unique_ptr 是 C++11 引入的一种智能指针,用于管理动态分配的对象生命周期。 它的核心特点是独占所有权(exclusive ownership),即同一时间只能有一个 std::unique_ptr 指向某个对象...