为什么C++ 有指针也有引用

C++ 的指针继承于 C,若要移除指针,势必造成严重的兼容性问题。引用有几方面的用处,在 C++ 中引入它的主要目的是为了支持运算符重载。例如:

更一般地,如果你想要同时拥有指针功能和引用功能,那就需要两种不同的类型(C++ 里就是这么干的)或者对一个单独的类型有两套不同的操作。例如,如果采用单一类型的话,则需要有给被引用的对象赋值的操作以及给引用/指针赋值的操作。这可通过使用不同的运算符来完成(Simula 里就是这么干的)。例如:


或者,你也可以依赖类型检测系统(重载)。例如: