当 `a` 和 `b` 都属于 class `X` 时,`a = b()` 是什么意思?

What does `a = b()` mean when both `a` and `b` are of class `X`?

我正在阅读 article on rvalue-references,但我对以下摘录感到困惑:

X foo();
X x;
// perhaps use x in various ways
x = foo();

在这里,X 是一些用户定义的类型。

我知道 X foo(); 会调用 X 的构造函数,但我很确定 X x; 不会。

然而,x = foo(); 行是什么意思?有构造函数调用吗? x = foo; 会做什么?

尽我所能,我无法找到正确的词来查找此代码的含义。

I know that X foo(); will call X's constructor

不,不会。它将声明(但不定义)一个名为 foo 的函数,该函数不带任何参数,并且 returns 一个 X.

and I'm pretty sure X x; will not.

是的,如果有的话。通过以上对您理解的更正,您的问题的答案现在应该很明显了,但是:

However, what does the line x = foo(); mean?

表示调用函数foo,并将结果存入x。