初始化参考。领域与参考。参数:是否制作了副本?

时间:2011-08-04 14:17:31

标签: c++

我想知道是否在以下情况下制作副本,或者两个引用是否都指向同一个对象。考虑一个具有单个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会指向传递给构造函数的相同向量,还是会创建一个副本?

4 个答案:

答案 0 :(得分:2)

没有复制,两者都会指向同一个obj

答案 1 :(得分:2)

引用仅引入现有名称的别名(或者有时是值)。考虑:

int a = 42;
int& b = a;

b现在是a的别名。如果我们进一步写

int& c = b;

然后cb的别名,因此依次为a

同样适用于您的情况:不会复制。

答案 2 :(得分:1)

它将(“point”)引用到构造函数中传递的相同向量。

否则参考成员将毫无用处!

答案 3 :(得分:1)

您正在参考。由于它必须是const,因此只能对向量中的变量进行读访问。由于通过引用传递,因此不会进行复制。 my_doublesconst引用传递给构造函数的vector