关于c++临时对象的析构问题
发布网友
发布时间:2022-09-10 08:03
我来回答
共1个回答
热心网友
时间:2024-12-13 11:53
也许返回引用效率会好一些,这跟Ctest的大小有关系
但是写程序的时候主要应该考虑的不是这个问题(因为编译器优化会替你解决绝大多数小差异),而是语法语义的问题, 尤其是在重载操作符的时候, 要尽量保证这个操作符的语义跟原版操作符一致。
比如这里, 如果你返回Ctest而不是Ctest&, 那么 ++ct = ct2 这个表达式就无法编译(因为临时对象是不能被赋值的),这跟普通的前置加就有差别了。当然按C规定,这个表达式本来就有问题,但是毕竟能通过,而如果你返回Ctest就不能通过 。 这不是什么大事,你也可以不按这个原则来, 但是如果你这个操作符被“大规模使用”,就可能出现一些微妙的差异,造成别人的一点不适应。
所以简单的说, 你自己用的情况下随便怎么办。 但是为了以后的工作发展,还是应该尽量多点考虑语义问题, 至于效率问题,比你想象的小得多,如果有必要的话,根据运行情况优化的时候再考虑也不晚追问你在说毛线,你们这伙人到底是什么鬼,到处随便复制,这还能加V?百度真实狗*