排序
面试题:用过哪些 C++ 单元测试框架?都有什么优缺点?
在 C++ 开发中,单元测试是保证代码质量的重要手段。以下是几种常见的 C++ 单元测试框架及其优缺点: 1. Google Test (gtest) 优点: 功能强大:支持丰富的断言宏(如 EXPECT_EQ、ASSERT_TRUE ...
面试题:什么情况下会出现内存泄漏?如何避免内存泄漏?
内存泄漏(Memory Leak)是指程序在动态分配内存后,未能正确释放该内存,导致内存占用不断增加,最终可能耗尽系统内存资源。 内存泄漏是 C++ 等手动管理内存的语言中常见的问题。 什么情况下会...
面试题:C++ 什么场景下用继承?什么场景下使用组合?
在C++中,继承和组合是两种不同的代码复用方式,适用于不同的场景。 1. 继承的使用场景 继承用于表示“is-a”关系,即子类是父类的一种特殊类型。继承适合以下场景: 代码复用:当多个类有共同...
面试题:如何理解 C++ 中的 atomic?
在 C++ 中,std::atomic 是一个模板类,用于实现原子操作。原子操作是不可分割的操作,即在多线程环境中,一个线程执行原子操作时,不会被其他线程中断。std::atomic 提供了一种高效...
面试题:用过哪些 C++ 日志框架?都有什么优缺点?
在 C++ 开发中,日志框架是记录程序运行状态、调试信息和错误信息的重要工具。以下是几种常见的 C++ 日志框架及其优缺点: 1. spdlog 优点: 高性能:spdlog 是一个非常快速的日志库,专为高性...
面试题:C++ 中 malloc 申请的内存,可以用 delete 释放吗?
在 C++ 中,malloc 申请的内存不可以用 delete 释放,反之亦然。malloc 和 delete 是两种不同的内存管理机制,它们的行为和实现方式有本质区别。 为什么不能混用...
面试题:如何解决 C++ 中条件变量的信号丢失和虚假唤醒问题?
在 C++ 中,条件变量(std::condition_variable)是多线程编程中常用的同步机制,用于线程间的通信。然而,使用条件变量时可能会遇到 信号丢失 和 虚假唤醒 的问题。以下是...