当没有对引用进行编译时类型检查时,为什么要使用引用而不是指针?
想象一下,您正在创建一个类型的对象,该对象Person
需要保存指向它们的引用/指针House
(非常随机) - 因此人员对象会将房屋引用/指针保存为数据成员。想象一下这是通过引用完成的:
class Person{
public:
Person(House& myHouse) : house(myHouse) { }
private:
House& house;
};
我看到的问题是,如果您忘记在数据成员声明中包含 & ,那么您认为是引用的东西就会变成副本。当然,传递并保存一个指针会更安全,这样这个错误就会在编译时被标记出来?
我不是要使用一个或另一个 - 我在问为什么在指针上使用引用来保存数据成员?