直接在 C++ 中将值分配给引用返回类型

assign values to the reference return type directly in c++

本文关键字:分配 引用 返回类型 C++      更新时间:2023-10-16

我是 c++ 编程的新手,我想知道add(c1, c2).getVal()是如何工作的。

下面是我的代码。

#include <iostream>
using namespace std;
class Cents {
int m_val;
public:
Cents(int val_in) : m_val(val_in) {};
int getVal() const {
return m_val;
}
};
Cents add(const Cents& c1, const Cents& c2){
return Cents(c1.getVal() + c2.getVal());
}
int main(){
Cents c1(10);
Cents c2(10);
int val = add(c1,c2).getVal();
cout << val << endl;
}

正如我们所料,add(c1,c2)创建美分实例并返回它。

所以我认为我们必须将返回的实例保存在某个地方以供以后使用。

我认为下面的代码就可以了。

Cents returnedInstance = add(c1,c2);
returnedInstance.getVal();

但是int val = add(c1,c2).getVal();如何工作,因为我们没有将返回的 add(c1,c2( 实例保存在某处?

如何直接调用getVal()方法来add(c1,c2)

它的工作原理与不使用变量的打印 (2 + 3( 相同。 当你调用add(c1, c2(时,会返回一个临时的Cents对象。是否将其保存在变量上并不重要。只要它是一个美分对象,你就可以在它上面使用 add 方法。