【发布时间】:2021-06-25 05:32:28
【问题描述】:
引用和指针成员变量持有的内存有什么区别?
假设我有一个类 A 和一个类 B。A 类有一个成员变量作为引用,而 B 类有一个成员变量作为指向外部对象的指针。
每个班级的规模会有什么不同?当需要创建 1000 个 A/B 类对象时,哪个更好?
【问题讨论】:
-
虽然标准没有要求,但大多数编译器使用指针实现引用。
-
使用
sizeof的A和B实例进行检查?请记住,如果您需要使用指针或引用,还需要考虑其他事项,并且大小很少成为问题(除非您在内存严重受限的系统上)。此外,现在应该很少使用原始的非拥有指针,而是使用智能指针,如std::unique_ptr或std::shared_ptr(或std::weak_ptr,具体取决于用例)。 -
请注意,对于引用非静态成员,编译器不会自动生成赋值运算符。这可能会阻碍,例如,将实例放入
std::vector。