我最近了解到,如果您将一个类的引用作为函数参数,那么将某些需要的信息片段存储为局部变量是更好的做法,而且效率更高,而不是每次需要时都访问类成员函数。
所以...
void function(const Sphere& s)
{
//lots of calls to s.centre and s.radius
}
或
void function(const Sphere& s)
{
Vector3 centre = s.centre; float radius = s.radius;
//an equal amount of calls to centre and radius
}
有人告诉我第二种更好,但为什么呢?而且,从哪里开始更全面地研究这个问题的好地方在哪里? (请给假人看!)
最佳答案
告诉你这个的人可能认为第二个版本可能更快。
我认为这是个糟糕的建议,原因有二:
- 它实际上可能会或可能不会更快。这取决于编译器、代码究竟在做什么等等。
- 即使速度更快,这也会尖叫premature optimization .只有在分析代码并确定代码的哪一部分是整体瓶颈之后,才应该进行微优化。
关于c++ - 变量而不是类调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730076/