受条款20影响,可能会强烈追求传递引用,然而返回对象时,一定不要返回引用。

 

一、不管在哪创建对象,都不可以返回引用

条款21:必须返回对象时,别妄想返回其reference

条款21:必须返回对象时,别妄想返回其reference

 

 

二、甚至,你可能会想到静态变量

然而情况更糟糕:

条款21:必须返回对象时,别妄想返回其reference

 

条款21:必须返回对象时,别妄想返回其reference

 

 

总结:

老老实实地返回值吧~

绝不要返回 pointer或 reference指向一个 local stack对象,或返回 reference指向一个 heap-allocated对象,或返回 pointer或 reference指向一个 local static对象而有可能同时需要多个这样的对象。条款4已经为“在单线程环境中合理返回 reference 指向一个 local static对象”提供了一份设计实例。

 

 

 

 

相关文章: