今天有人问我这个问题。在 C++ 中需要引用什么,为什么在 C++ 中Bjarne Stroustrup
考虑reference
。
问问题
121 次
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 回答