c++ - 返回值是类名后跟一对空括号是什么意思?

标签 c++ class syntax return-value semantics

我想知道函数返回类/结构名称后跟圆括号是什么意思。

例如:

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/

相关文章:

c++ - 将 Actionscript 移植到 C++ 中 - 是否有人创建了关于此类主题的任何说明?

java - 获取对象实例的原始类

java - 使用字段对类的 Arraylist 进行排序

python - 是我的人工编译器 : What is wrong with this Python 2. 5 代码吗?

c++ - 如何在托管 C++ 中使用手写的 getter/setter 定义属性?

c++ - 对 std::map 中元素的引用是否可以失效?

c++ - 段错误背包问题

c++ - 您如何直接从 Windows 上的物理内存中读取?

javascript - 为什么我的数据类成员不能直接使用?

python - 在 python 中为 "yield from"语句中的对象应用函数