返回值为 class 名称后跟一对空括号是什么意思?
What is the meaning of, returning value being a class name followed by a pair of empty parentheses?
我想知道 return 一个 class/structure 名称后跟括号的函数是什么意思。
例如:
struct X{...}; //structure with static members
X g(){ return X(); };
我在下面 link 中找到了这个:
https://en.cppreference.com/w/cpp/language/static#Explanation
X()
调用结构 X
的 default-constructor。
return X();
表示构造一个X
和return的临时实例。更具体地说,这里的临时文件是调用函数的 pure r-value which will be moved to the lvalue。
即
auto objectX = g();
通过上面的语句,objectX
(左值)将通过移动从g()
创建的临时文件来初始化。
在此处查看有关 C++ 中 值类别 的更多信息:https://en.cppreference.com/w/cpp/language/value_category
我想知道 return 一个 class/structure 名称后跟括号的函数是什么意思。
例如:
struct X{...}; //structure with static members
X g(){ return X(); };
我在下面 link 中找到了这个: https://en.cppreference.com/w/cpp/language/static#Explanation
X()
调用结构 X
的 default-constructor。
return X();
表示构造一个X
和return的临时实例。更具体地说,这里的临时文件是调用函数的 pure r-value which will be moved to the lvalue。
即
auto objectX = g();
通过上面的语句,objectX
(左值)将通过移动从g()
创建的临时文件来初始化。
在此处查看有关 C++ 中 值类别 的更多信息:https://en.cppreference.com/w/cpp/language/value_category