我想知道使用 getter 在循环中一遍又一遍地获取相同的属性是否会影响性能。我应该先将它保存到变量中吗?请看下面的例子:
直接使用getter:
for(int i=0; i<1000000; ++i) {
print("Phone = %d\n", myobj->getCity("Foo")->getPhone(i);
}
编辑:
循环约束呢?
for(int i=0; i<myobj->totalPhoneNum(); ++i) {...}
或
int totalPhoneNum = myobj->totalPhoneNum();
for(int i=0; i<totalPhoneNum; ++i) {...}
最佳答案
是的,你应该。不管它是否对性能有任何影响,它在语义上都更加清晰。通过首先将它保存到一个变量,您表明它是一个循环不变量。
关于C++ 性能 : use getter in loop or save it to a variable first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9940392/