芝士wa
2024.4.2
Item21链接
“无论何时只要你看到一个引用声明,你应该立刻问自己它是什么东西的另一个名字,因为它必定是某物的另一个名字”
如果函数返回一个引用,它必须返回某个已存在的对象的引用。
一个函数创建一个新对象只有两种方法:在栈上或者在堆上。
- 栈上的生成物是局部变量,任何返回一个引向局部对象的引用的函数都是错误的。
- 堆上的创建需要申请空间,这很容易导致内存泄漏。
此外,无论是在栈上还是在堆上创建对象并返回引用,都不能避免一次构造函数的调用。
直接返回值就好了。