【发布时间】:2018-07-18 05:36:14
【问题描述】:
我知道 C++ 引用不是对象,但似乎我可以将引用作为对象传递。
在下面的代码中,v1 和v2 是引用,通过构造函数赋值为double &v1 = x1。那么,在从foo() 拨打电话时,我应该使用bar(double &) 还是bar(double)?基于double &v1 = x1,不应该有bar(double)吗?
这让我很困惑。有人可以解释一下吗?
#include <iostream>
class FooBar
{
private:
double &v1, &v2;
public:
FooBar(double &, double &);
void foo();
void bar(double &);
};
FooBar::FooBar (double &x, double &y): v1(x), v2(y) {}
void FooBar::foo()
{
bar(v1);
bar(v2);
}
void FooBar::bar(double &x)
{
std::cout << x << "\n";
}
int main()
{
double x1 = {0.5}, x2 = {1.5};
FooBar f(x1, x2);
f.foo();
return 0;
}
【问题讨论】:
-
看看这个老问题,希望对你有帮助。 stackoverflow.com/questions/18147038/…
-
对不起,它没有澄清/回答我的问题。