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

浙公网安备 33010602011771号