int * x = new int;
中,new int;
是一个new expression. 术语“new operator”似乎可与“new expression”交替使用,例如在这个问题中:Difference between 'new operator' and 'operator new'?
关键字new
在新表达式中的用法是否可以说是一个运算符?为什么或为什么不?如果不是,是否有另一个称呼新表达式为“new operator”的理由?
我很难找到构成运算符的权威定义。
我已经了解了operator new和“new expression”的区别,其中operator new为对象分配内存,“new expression”可能最终调用operator new。
new
就像这里的sizeof
。我认为大多数 C++ 社区都将sizeof
视为运算符。标准甚至在描述其效果时提到了 "sizeof
运算符"。 - StoryTeller - Unslander Monicasizeof
,我认为它是一个表达式sizeof(<type>)
的运算符。而+
是一元表达式<type> <op> <type>
的运算符。这是我的理解,如有不对之处请指正。 - Roguenew
是否是运算符,表达式和运算符之间存在差异。例如,new int
是一个表达式,因为它会被计算出来。如果认为new
是一个运算符,那么new int
中只有 "new" 部分是运算符(即它是一个独立的东西)。从概念上讲,运算符是作用于其他东西的东西。 - Filip Milovanović