什么是 C++ 中调用的 () 运算符

what is () operator called in c++?

本文关键字:运算符 调用 C++ 什么      更新时间:2023-10-16
class functor;
functor();

()运算符叫什么?它是否使用 new 运算符创建对象?

我尝试在谷歌上搜索,但结果中没有"((",即使有引号。

编辑 : () 通常与函子一起使用,但它可以与未重载运算符()的类一起使用。它创建类的对象。

它被称为 CALL 运算符,它在函数调用期间写在函数名称之后。函数的参数在此运算符中传递(如果有,即(。

当与对象一起使用时,它通常被称为"函数调用运算符",它调用该对象的"运算符 (("。或者,如果对象是普通函数、对函数的引用或对函数的指针,则它只是调用该函数。

如果与类型名称一起使用,语法T()调用该类型的默认构造函数,创建该类型的未命名对象。该构造中的()简称为"初始值设定项"。

请参阅 C++ 11 标准的第 8.5 节"初始值设定项"。

在您的示例中,functor 是一个类型,而不是一个对象,表达式 functor() 在函数表示法中称为显式类型转换。将创建类型为 functor 的临时对象。新操作员不以任何方式参与。显式类型转换表达式的确切语法是 simple-type-specifier ( expression-list-opt )typename-specifier ( expression-list-opt ) 。请注意,我使用了后缀 -opt 而不是订阅 opt,因为标准是这样做的。请参阅 C++14 标准中的 5.2.3 显式类型转换(函数表示法([expr.type.conv],或此处的 cpp首选项。

如果(的左侧是一个表达式,如functor f; f(),表达式f()是一个函数调用。确切的语法是 postfix-expression ( expression-list-opt ) .请参阅 C++14 标准中的 5.2.2 函数调用 [expr.call],或此处的 cppereference。在这里你会说使用了函数调用运算符。f的类型,这里functor,必须重载函数调用运算符,例如参见cpprefrence上的"函数调用运算符"一章。您可能还想阅读 cpp首选项上的函数对象页面。

它的函数调用运算符重载。

http://www.tutorialspoint.com/cplusplus/function_call_operator_overloading.htm

相关文章。

为什么要覆盖运算符((?