我是否必须在C ++中使用引用。?


Do I have to use references in C++.?

本问题已经有最佳答案,请猛点这里访问。

我有一个很深的C经验,但我是一个C++初学者。参考似乎比指针更容易使用,但它让我发疯。我认为所有的引用都可以用指针替换。在我的例子中,指针并不难,因为我花了很多时间研究它们。在C++程序员中使用引用是常见的吗?还是只是推荐??


引用不能总是由指针替换:

1
2
C a, b, c;
a = b - c;

如果C有一个operator-(),它要么需要接受它的论点:

  • 复印件:

    1
    C operator-(C left, C right);
  • 地址:

    1
    C operator-(C* left, C* right);

    在这种情况下,呼叫变成:

    1
    a = &b - &c;

    (在c中已经有了含义)

  • 或者通过使用C中没有等效的新构造,这成为C++中的引用。

关于引用和指针的使用,您可以参考各种各样的问题。


引用阻止的一件事是NULL指针。如果要确保传递给函数的参数不为空,可以通过引用传递。

1
void func(int& i); // i cannot be NULL