标题所说的问题是静态函数?或者立即删除的对象的功能?
我知道在实际情况下,差异是完全不可察觉的,但我仍然想知道哪种更有效地节省内存.我真的不介意"新"和"删除"命令给出的开销.
MyClass::staticFunction();
Run Code Online (Sandbox Code Playgroud)
要么...
myObject = new MyClass;
myObject->normalFunction();
delete myObject;
Run Code Online (Sandbox Code Playgroud)
编辑:第二个代码也可能是MyClass().normalFunction();愚蠢的......
这里有一些事情需要考虑;
就目前而言,这一切都没有任何意义.真正的解决方案是提供一个自由函数(在命名空间范围内的函数),因为这就是自由函数的用途.
哦,既然你问过:如果调用这个单一函数在代码中有明显的开销,那么你只能通过仔细的分析找到它.分析也可以回答你的问题,哪种方式更快.
但首先要确保您的代码易于阅读且易于维护.然后优化这将比修复过早的微"优化"代码容易得多.您应该采用的唯一早期优化是那些能够产生最佳数据结构和算法的优化.
(注意,new并且delete很可能会比函数实际执行的开销大得多,更不用说调用它了.)