直接在 C++ 中将值分配给引用返回类型
assign values to the reference return type directly in c++
我是 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 方法。
相关文章:
- 对具有动态分配的内存和析构函数的类对象的引用
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 我如何通过引用将 c++ 字符串分配给另一个字符串
- 将引用分配给局部变量,如果局部变量超出范围,它会超出范围吗?
- 如何在构造函数中构造对象并分配引用
- C++中的可重新分配引用
- 如何分配引用链的末端
- c++ 在 if 语句中分配引用变量
- 为什么不能重新分配引用的目标对象?
- 阻止重新分配引用
- C++ 从传入的引用变量中分配引用变量
- C++可以重新分配引用
- 重新分配C++引用变量
- 有条件地分配引用
- 我们可以在C++中重新分配引用吗
- C++在为指针分配引用时获取临时错误的地址
- 为什么可以在 for 语句中重新分配引用常量
- 如何(优雅地)根据字符别名分配引用成员
- 处理赋值运算符重载;您可以重新分配引用吗?
- 对左值和右值的可分配引用