我有简单的问题
假设我在C ++中有两个函数:
void DoSomething();
和
bool DoSomething();
这两个功能之间的内存或速度是否有任何差异?
第二个问题,与第一个问题相关:我认为存在速度差异,因为bool必须返回一些值。但我根本不必使用返回值。那么,将DoSomething()声明为bool对我有好处,以防我以后决定返回某些内容吗?
答案 0 :(得分:9)
如果你的函数没有理由返回某些东西,它不应该返回任何东西,即它应该返回void
。给出一个不产生任何结果的函数是没有意义的。
如果你的函数有理由返回某些东西,例如,因为它可能会失败,它应该返回相应的结果。由于结果有意义,因此不会被忽略,即没有返回值的优化潜力。
当事情变得有趣时,返回大量物体时:发生的潜在复制可能很昂贵,并且在重用内存方面也存在速度优势。但是,这些注意事项不适用于任何内置类型。