我想知道是否在以下情况下制作副本,或者两个引用是否都指向同一个对象。考虑一个具有单个const ref字段的类,该字段从const ref参数初始化:
class Foo {
public:
Foo(const vector<double>& the_doubles) : my_doubles(the_doubles) {}
private:
const vector<double>& my_doubles;
}
那么,my_doubles会指向传递给构造函数的相同向量,还是会创建一个副本?
答案 0 :(得分:2)
没有复制,两者都会指向同一个obj
答案 1 :(得分:2)
引用仅引入现有名称的别名(或者有时是值)。考虑:
int a = 42;
int& b = a;
b
现在是a
的别名。如果我们进一步写
int& c = b;
然后c
是b
的别名,因此依次为a
。
同样适用于您的情况:不会复制。
答案 2 :(得分:1)
它将(“point”)引用到构造函数中传递的相同向量。
否则参考成员将毫无用处!
答案 3 :(得分:1)
您正在参考。由于它必须是const
,因此只能对向量中的变量进行读访问。由于通过引用传递,因此不会进行复制。 my_doubles
将const
引用传递给构造函数的vector
。