Lin*_*gxi 6 c++ reference conversion-operator
在定义转换运算符时,定义有什么好处吗?
operator T() const;
Run Code Online (Sandbox Code Playgroud)
超过
operator T&();
operator const T&() const;
Run Code Online (Sandbox Code Playgroud)
假设我不关心返回值而不是引用的潜在性能提升。
第二种方法肯定更好。
使用第一种方法时,调用代码需要复制返回的对象,这可能会很昂贵。
使用第二种方法,调用代码可以选择制作或不制作副本。
当您负责一个类/库时,您不想对没有解决方法的性能瓶颈负责。
第二种方法的一个主要缺点是调用代码可能会留下悬空指针/引用。为了帮助您的用户,您必须清楚地记录返回的参考文献的有效期限。希望您的用户能够留意并做正确的事情。