尽管C++中采用引用传递比采用值传递高效的多,但是这种高效也不是放之四海皆准的。有些情况就得使用值传递。
因为引用是一个已经存在的对象别名,如果函数生成的是一个新对象,那么应该返回的是值而不是引用。
函数内有两种新方法创建一个新对象,堆上或者栈上。这些方法都得复旦构造函数的开销,且堆上的开销易于引起内存泄漏。
当需要在返回引用和返回对象间做决定时,你的职责是选择可以完成正确功能的那个。
尽管C++中采用引用传递比采用值传递高效的多,但是这种高效也不是放之四海皆准的。有些情况就得使用值传递。
因为引用是一个已经存在的对象别名,如果函数生成的是一个新对象,那么应该返回的是值而不是引用。
函数内有两种新方法创建一个新对象,堆上或者栈上。这些方法都得复旦构造函数的开销,且堆上的开销易于引起内存泄漏。
当需要在返回引用和返回对象间做决定时,你的职责是选择可以完成正确功能的那个。