gpt4 book ai didi

c# - 您如何向 C#/Java 开发人员解释 C++ 指针?

转载 作者:IT老高 更新时间:2023-10-28 22:17:30 26 4
gpt4 key购买 nike

我是一名尝试学习 C++ 的 C#/Java 开发人员。当我尝试学习指针的概念时,我突然想到我以前一定处理过这个概念。如何仅使用 .NET 或 Java 开发人员熟悉的概念来解释指针?我是不是真的从来没有处理过这个问题,它只是对我隐藏,还是我一直使用它而不这么调用它?

最佳答案

C++ 中的 Java 对象

Java 对象相当于 C++ 共享指针。

C++ 指针就像一个没有内置垃圾收集的 Java 对象。

C++ 对象。

C++有三种分配对象的方式:

  • 静态存储持续时间对象。
    • 这些是在启动时(在 main 之前)创建并在 main 退出后消失。
      对此有一些技术警告,但这是基础知识。
  • 自动存储持续时间对象。
    • 它们在声明时创建,在超出范围时销毁。
      我相信这些就像 C# 结构
  • 动态存储持续时间对象

    • 这些是通过 new 和最接近 C#/Java 对象(AKA 指针)创建的
      从技术上讲,指针需要通过 delete 手动销毁。但这被认为是不好的做法,在正常情况下,它们被放入控制其生命周期的自动存储持续时间对象(通常称为智能指针)中。当智能指针超出范围时,它会被销毁,并且其析构函数可以在指针上调用 delete。智能指针可以看作是细粒度的垃圾收集器。

      最接近Java的是shared_ptr,这是一个智能指针,它记录指针的用户数量,并在没有人使用时删除它。

关于c# - 您如何向 C#/Java 开发人员解释 C++ 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5174725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com