51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

C++

C++ 函数对象

C++ 函数对象

厉飞雨 阅读(136) 评论(0) 赞(16)

<p>函数对象有时也叫仿函数,其本质是一个类对象,由于重载函数调用符号,其可以像普通函一样使用。</p> <ol> <li>函数调用符号重载语法 {#title-0} ========================</li> </ol> <pre><code>class Demo ...

C++ default 关键字

C++ default 关键字

厉飞雨 阅读(156) 评论(0) 赞(13)

<p>在 C++11 标准中引入的 <code>default</code> 关键字,主要用于在类的声明中显式指定<strong>编译器生成默认的特殊成员函数实现</strong>。这些特殊成员函数包括:</p> <ol> <li>默认构造函数(default constructor...

C++ 智能指针 工厂函数

C++ 智能指针 工厂函数

厉飞雨 阅读(157) 评论(0) 赞(17)

智能指针的工厂函数是一个创建智能指针的函数,用于方便地创建特定类型的智能指针对象,这些函数通常都是以 make 开头的函数。比如 1. `std::make_unique` 用于创建 `std::unique_ptr` 实例 2. `std::make_shared` 用于创建 `std::shared_ptr` 实例 1. make_unique {#title-0} =...

C++ 智能指针 weak ptr

C++ 智能指针 weak ptr

厉飞雨 阅读(169) 评论(0) 赞(11)

`std::weak_ptr` 是 C++ 标准库中的一个智能指针类,用于解决 `std::shared_ptr` 可能引发的循环引用问题。循环引用可能导致内存泄漏,因为引用计数无法降为零,从而无法释放对象。 `std::weak_ptr`是一种弱引用,它允许你观测由 `std::shared_ptr` 管理的对象,但不会增加对象的引用计数。换句话说,`std::weak_p...

C++ 智能指针 shared ptr

C++ 智能指针 shared ptr

厉飞雨 阅读(160) 评论(0) 赞(16)

<p>C++ 的 <code>shared_ptr</code> 是 C++11 标准引入的智能指针之一,用于管理动态分配的对象的所有权。它允许多个 <code>shared_ptr</code> 实例共享对同一对象的所有权,而不会出现内存泄漏或者悬空指针的情况。<code>shared_ptr</c...

C++ 智能指针 unique ptr

C++ 智能指针 unique ptr

厉飞雨 阅读(202) 评论(0) 赞(14)

<p><code>unique_ptr</code> 提供了一种独占所有权的智能指针,允许动态分配的对象在其生命周期结束时自动释放内存。这种特性在 C++11 中是非常有用的,因为它有助于避免内存泄漏和悬挂指针等常见问题,同时也提高了代码的安全性和可靠性。</p> <p>我们重点从以下几个方面来学习 unique_pt...

C++ 智能指针 auto ptr

C++ 智能指针 auto ptr

厉飞雨 阅读(117) 评论(0) 赞(12)

<p><code>auto_ptr</code> 是 C++98 中引入的智能指针,用于自动管理动态分配的对象的生命周期。然而,它在 C++11 中已被标记为已废弃,并且在 C++17 中已被移除,因为它存在一些严重的缺陷和安全问题。</p> <ol> <li>auto_ptr 用法 {#title-0} ...

C++ Type Traits

C++ Type Traits

厉飞雨 阅读(203) 评论(0) 赞(14)

`Type Traits` 是 C++11 中的一种模板元编程技术,它提供了一系列的模板类和函数,用于在**编译时**查询和操作类型信息。这些类型特征可以用于泛型编程中,帮助我们编写更加灵活、通用和安全的代码。 例如:判断一个类型是否为指针类型、是否为整数类型、是否可以进行拷贝构造等等。这使得我们可以根据类型的属性来做出不同的编译时决策,从而避免在运行时出现错误或者不必要的性...

C++ 运行时类型识别(RTTI)

C++ 运行时类型识别(RTTI)

厉飞雨 阅读(209) 评论(0) 赞(10)

<p>C++ 是一种静态类型语言,数据类型在编译时确定。但在有些场景下,编译时无法确定数据类型,需要在运行时才能确定。RTTI(Run Time Type Identification,运行时类型识 别)就是一种能够在运行时动态确定数据类型的机制。</p> <ol> <li>RTTI 应用场景 {#title-0}</li&...

C++ 位运算技巧

C++ 位运算技巧

厉飞雨 阅读(124) 评论(0) 赞(28)

可以使用C对变量中的个别位进行操作。您可能对人们想这样做的原因感到奇怪。这种能力有时确实是必须的,或者至少是有用的。C提供位的逻辑运算符和移位运算符。 1. 位运算符 {#title-0} ================== 1. 位运算符 1. 取反 \~,对于每个位按位取反。 2. 位与 \&,对于每个位,只有两个操作数的对应位都是 1 时结果才为...