class MyClass {
private:
unsigned int currentTimeMS;
public:
void update() {
currentTimeMS = getTimeMS();
// ...
}
};
class MyClass {
public:
void update() {
unsigned int currentTimeMS = getTimeMS();
// ...
}
};主游戏循环中的update()调用,所以在第二种情况下,我们得到了很多分配操作(无符号int currentTimeMS)。在第一种情况下,我们只得到一个分配和使用之前分配的变量。这些代码中哪一种更适合使用,为什么?
发布于 2016-03-29 07:59:20
我推荐第二个变量,因为它是无状态的,并且变量的范围更小。只有当您真的遇到性能问题时才使用第一个,我认为这是不可能的。
如果以后不修改变量值,还应该考虑将其设置为const,以便在代码中表达这一意图,并为编译器提供额外的优化选项。
发布于 2016-03-29 08:00:30
这取决于你的需要。如果只需要在currentTimeMS中临时使用,那么肯定会在那里声明它。(在您的例子中,#option2)
但是--如果类的实例需要它的值(即在其他方法中使用),那么您应该将它声明为一个字段(在您的例子中,#option1)。
发布于 2016-03-29 07:57:51
在第一个示例中,您要保存这个类对象的状态。在第二个例子中,您没有,所以在调用currentTime ()时会丢失它。
真正由你来决定你需要哪一个。
https://stackoverflow.com/questions/36278521
复制相似问题