0

今天有人问我这个问题。在 C++ 中需要引用什么,为什么在 C++ 中Bjarne Stroustrup考虑reference

4

2 回答 2

5

这是 Stroustrup 的解释:http ://www2.research.att.com/~bs/bs_faq2.html#pointers-and-references

C++ 继承了 C 的指针,因此我无法删除它们而不会导致严重的兼容性问题。引用对一些事情很有用,但我在 C++ 中引入它们的直接原因是支持运算符重载。

这是一个例子:

void f1(const complex* x, const complex* y) // without references
{
    complex z = *x+*y;  // ugly
    // ...
}

void f2(const complex& x, const complex& y) // with references
{
    complex z = x+y;    // better
    // ...
}   
于 2012-04-05T19:05:10.007 回答
1

如果您想知道此类问题的答案,请阅读他本人写的一本名为《C++ 的设计与演变》的书:

http://www2.research.att.com/~bs/dne.html

或者,请参阅此处,他在其中详细解释了答案:

http://www2.research.att.com/~bs/bs_faq2.html#pointers-and-references

去引用:

C++ 继承了 C 的指针,因此我无法删除它们而不会导致严重的兼容性问题。引用对一些事情很有用,但我在 C++ 中引入它们的直接原因是支持运算符重载。例如:

void f1(const complex* x, const complex* y) // without references
{
    complex z = *x+*y;  // ugly
    // ...
}

void f2(const complex& x, const complex& y) // with references
{
    complex z = x+y;    // better
    // ...
}
于 2012-04-05T19:04:07.843 回答