无法理解新 int(2) 的含义

Cannot Understand the Meaning of new int(2)

本文关键字:int      更新时间:2023-10-16

作为一个C++学习者,这个问题可能是一个愚蠢的问题,所以我非常感谢你的耐心和建议。我从一本关于编程的书中得到了以下代码:

int *ptr
ptr = new int(2)

那么为什么我们要为 2 加上括号呢?我知道"new int"代表动态内存,但它对"new int(2("意味着什么?

>(2)是新创建的int对象的初始值设定项。它与变量定义中的初始值设定项具有相同的含义:

int x(2);

它使用值2初始化对象。

不过,在大多数情况下,我建议您对初始值设定项使用大括号表示法:

int x{2};
ptr = new int{2};

(这两种初始化方法有细微的区别,但由于有时会令人惊讶地解析()和其他问题,我建议在大多数情况下这样做。不过,这是一个复杂的话题,并非没有其他意见。

相关文章:
  • 没有找到相关文章