C/C++ 指针和字符串
字符串在计算机编程中具有广泛的应用。字符串指的是由字符组成的序列,它是一种常见的数据类型,用于表示和处理文本数据。在这一篇文章中,我们将会字符串相关的内容: 1. 字符串原理 2. 字符串和内存 3. 字符串操作函数 1. 字符串原理 {#title-0} =================== C 语言中的字符串是字符序列 + 特殊的 \\0 字符组成,注意 \\0 字...
字符串在计算机编程中具有广泛的应用。字符串指的是由字符组成的序列,它是一种常见的数据类型,用于表示和处理文本数据。在这一篇文章中,我们将会字符串相关的内容: 1. 字符串原理 2. 字符串和内存 3. 字符串操作函数 1. 字符串原理 {#title-0} =================== C 语言中的字符串是字符序列 + 特殊的 \\0 字符组成,注意 \\0 字...
1. 委托构造函数的使用场景 {#title-0} ========================= ``` // 场景1 class Box1 { public: Box1() : m_l(0), m_h(0), m_w(0) {} Box1(int l) : m_l(l), m_h(0), m_w(0) {} Box1(int l, int h) : m_l(l)...
1. 类对象的默认赋值行为 {#title-0} ======================== ``` class Demo1 { public: Demo1(int a, int b, int c) : m_a(a), m_b(b), m_c(c) {} public: int m_a; int m_b; int m_c; }; ostream& op...
常对象指的是使用 const 关键字修饰的类对象,常函数指的是由 const 关键字修饰的函数。这里需要注意:只有成员函数才可以被 const 关键字修饰,而全局函数无法被 const 关键字修饰。 1. 常函数 {#title-0} ================= 在成员函数的后面加上 const, 该函数就变成了常函数,常函数会保证不修改成员变量的值,如果修改则...
<p>函数对象有时也叫仿函数,其本质是一个类对象,由于重载函数调用符号,其可以像普通函一样使用。</p> <ol> <li>函数调用符号重载语法 {#title-0} ========================</li> </ol> <pre><code>class Demo ...
<p>在 C++11 标准中引入的 <code>default</code> 关键字,主要用于在类的声明中显式指定<strong>编译器生成默认的特殊成员函数实现</strong>。这些特殊成员函数包括:</p> <ol> <li>默认构造函数(default constructor...
智能指针的工厂函数是一个创建智能指针的函数,用于方便地创建特定类型的智能指针对象,这些函数通常都是以 make 开头的函数。比如 1. `std::make_unique` 用于创建 `std::unique_ptr` 实例 2. `std::make_shared` 用于创建 `std::shared_ptr` 实例 1. make_unique {#title-0} =...
`std::weak_ptr` 是 C++ 标准库中的一个智能指针类,用于解决 `std::shared_ptr` 可能引发的循环引用问题。循环引用可能导致内存泄漏,因为引用计数无法降为零,从而无法释放对象。 `std::weak_ptr`是一种弱引用,它允许你观测由 `std::shared_ptr` 管理的对象,但不会增加对象的引用计数。换句话说,`std::weak_p...
<p>C++ 的 <code>shared_ptr</code> 是 C++11 标准引入的智能指针之一,用于管理动态分配的对象的所有权。它允许多个 <code>shared_ptr</code> 实例共享对同一对象的所有权,而不会出现内存泄漏或者悬空指针的情况。<code>shared_ptr</c...
<p><code>unique_ptr</code> 提供了一种独占所有权的智能指针,允许动态分配的对象在其生命周期结束时自动释放内存。这种特性在 C++11 中是非常有用的,因为它有助于避免内存泄漏和悬挂指针等常见问题,同时也提高了代码的安全性和可靠性。</p> <p>我们重点从以下几个方面来学习 unique_pt...