在c ++中返回*这是安全的吗?

时间:2017-03-23 17:37:14

标签: c++ pointers memory-leaks

我想知道从函数返回* this是否安全。 this问题显示了一些您可以做到的方法,我的问题就是这个例子:

=CALCULATE(SUM(Query[TotalSeconds]),Query[Incident_Id]=EARLIER(Query[Incident_Id]),Query[TotalSeconds]>0)

是否会出现内存泄漏?

1 个答案:

答案 0 :(得分:5)

  

在c ++中返回*this安全

基本上是的,它是安全的。实际上,这是一种常见的模式。请参阅:https://en.wikipedia.org/wiki/Method_chaining

当然它也可能被滥用:

auto& foo = test().A("a");
foo.B("b"); // oops, foo is a dangling reference
  

我的问题是这个例子:

     

[剪断]

     

是否会出现内存泄漏?

不,所示代码中没有内存泄漏。