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

问题描述 投票:1回答:1

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

int *ptr
ptr = new int(2)

所以为什么要在括号中加上2?我知道“ new int”代表动态内存,但是对“ new int(2)”意味着什么?

c++ pointers dynamic-memory-allocation
1个回答
4
投票

(2)是新创建的int对象的初始化程序。它与变量定义中的初始化程序的含义相同:

int x(2);

它使用值2初始化对象。

尽管,在大多数情况下,我建议您将花括号符号用于初始化程序:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.