今天有人问我这个问题。
在C ++中需要引用的是什么,为什么Bjarne Stroustrup
在C ++中考虑reference
。
答案 0 :(得分: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
// ...
}
答案 1 :(得分: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
// ...
}