C++
文章平均质量分 56
jzjhome
这个作者很懒,什么都没留下…
展开
-
C++之explicit
explicit关键字用于指定构造函数只能被显式地调用,禁止隐式类型转换。这种机制有助于代码的健壮性和可读性,可以避免一些潜在的类型转换问题。原创 2024-08-01 09:02:03 · 535 阅读 · 0 评论 -
C++之关键字default/delete
default关键字用于告诉编译器生成默认的特殊成员函数。delete关键字用于禁用特定的成员函数或函数重载。这些关键字提供了更精确的控制能力,可以使代码更清晰和安全。原创 2024-08-01 08:55:30 · 239 阅读 · 0 评论 -
C++之强制转换
主要用于常见的类型转换,如数值类型之间的转换,父子类指针或引用的转换(向上转换),以及void指针与其他指针类型之间的转换。: 主要用于去除指针或引用的const或volatile属性,用于修改变量的const属性或volatile属性。: 用于处理低级转换,比如指针之间的位模式转换,或者不同类型指针之间的转换(如指针到整数类型的转换)。只能用于具有虚函数的类,且目标类型必须是多态的。这些类型强制转换在C++中提供了灵活性和功能,但在使用时需要谨慎,确保不会违反类型系统的安全性和规则。原创 2024-07-01 15:32:52 · 276 阅读 · 0 评论 -
C++之std::condition_variable::wait_for
是 C++11 引入的条件变量的一部分,用于在一定时间内等待通知。它是类的成员函数之一,可以使线程在等待某条件变为真时,最多等待指定的时间段。原创 2024-06-22 18:56:08 · 1337 阅读 · 0 评论 -
C++之std::queue::emplace
是 C++ STL 中std::queue容器的成员函数,它用于在队列的末尾就地构造一个新元素。这个函数类似于,但是emplace允许你通过传递参数来构造元素,而不需要显式地创建一个元素对象。原创 2024-06-22 16:31:52 · 1360 阅读 · 0 评论 -
C语言之#define #if 预处理器指令
这种方法非常适合用来在编译时根据条件选择不同的代码路径,从而实现灵活的编译控制。指令来根据某些条件包含或排除代码块。以下是一个完整的例子,演示了如何使用。在 C 语言中,预处理器指令用于条件编译代码。的值并重新编译代码,以测试不同的条件分支。原创 2024-06-12 09:40:21 · 272 阅读 · 0 评论 -
C++之std::lock_guard和std::unique_lock
和都是 C++ 标准库提供的 RAII(Resource Acquisition Is Initialization)风格的锁机制,用于在作用域内管理互斥量 (std::mutex) 的锁定和解锁操作。它们帮助开发者更安全地处理多线程中的互斥量,避免手动锁定和解锁带来的潜在错误。是一种简单的、不可重入的互斥量封装器。它在构造时锁定互斥量,在析构时自动解锁,非常适合用于存在明确作用域的临界区。原创 2024-06-12 09:36:15 · 603 阅读 · 0 评论 -
C++之std::condition_variable
是 C++ 标准库中用于线程间同步的类,通常与std::mutex结合使用。它提供了一种在多线程环境下等待条件变量满足的机制,以避免忙等(busy-waiting)并减少 CPU 资源的浪费。以下是。原创 2024-06-12 09:33:02 · 304 阅读 · 0 评论 -
C++之 delete删除拷贝构造函数和拷贝赋值运算符
在 C++ 中,删除拷贝构造函数和拷贝赋值运算符是一种常见的方法,用于防止对象的拷贝和赋值。这在某些情况下是必要的,例如当类管理资源(如线程、文件句柄或网络连接)时,以确保资源的唯一性和避免潜在的资源泄漏或多重释放。原创 2024-06-12 08:56:14 · 464 阅读 · 0 评论 -
C++之explicit
explicit关键字在 C++ 中非常有用,能够防止意外的隐式类型转换,增强代码的安全性和可读性。在定义单参数构造函数时,建议优先考虑使用explicit,除非确实需要支持隐式转换。原创 2024-06-12 08:54:12 · 381 阅读 · 0 评论