C++( get()方法、->、*)

发布时间 2023-12-12 10:48:31作者: 做梦当财神

在C++中,指针是一种强大的工具,用于处理内存和访问数据。以下是一些与指针相关的基本概念和操作符:

  1. 解引用运算符 *

    • 用于访问指针指向的内存地址处的值。

    • 例如,如果有一个指针 int* ptr,则 *ptr 将返回指针所指向地址的整数值。

      int x = 10;
      int* ptr = &x;
      std::cout << *ptr; // 输出 10
      
  2. 成员访问运算符 ->

    • 用于通过指针访问对象的成员,通常在指向对象的结构或类的指针上使用。

    • 等同于 (*ptr).member 的简化写法。

      struct MyStruct {
          int member;
      };
      
      MyStruct obj;
      MyStruct* ptr = &obj;
      ptr->member = 42;
      std::cout << ptr->member; // 输出 42
      
  3. get() 方法

    • 在C++中,指针没有内建的 get() 方法。通常,get() 是与智能指针相关的方法,而不是原始指针。

    • get() 用于获取智能指针底层的原始指针。

      #include <memory>
      
      int main() {
          std::shared_ptr<int> sptr = std::make_shared<int>(5);
          int* rawPtr = sptr.get(); // 获取底层的原始指针
          std::cout << *rawPtr;    // 输出 5
          return 0;
      }
      

    上述示例中,get() 方法用于从 shared_ptr 中获取底层的原始指针。

总体而言,指针是一种强大但需要小心使用的工具,特别是在涉及内存管理和指针算术时。在现代C++中,推荐使用智能指针(如 std::shared_ptrstd::unique_ptr)来管理资源,以减少内存泄漏和提高代码安全性。