我想知道函数返回类/结构名称后跟圆括号是什么意思。
例如:
struct X{...}; //structure with static members
X g(){ return X(); };
我在以下链接中找到了这个: https://en.cppreference.com/w/cpp/language/static#Explanation
最佳答案
X()
调用结构 X
的默认构造函数。
return X();
表示构造一个X
的临时实例并返回。更具体地说,这里的临时文件是 pure r-value 将移动到 lvalue 调用函数的地方。
也就是
auto objectX = g();
通过上面的语句,objectX
(左值)将通过移动从 g()
创建的临时对象来初始化。
在此处查看有关 C++ 中值类别的更多信息:https://en.cppreference.com/w/cpp/language/value_category
关于c++ - 返回值是类名后跟一对空括号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57025272/