首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么更好用的,为什么?

问有什么更好用的,为什么?
EN

Stack Overflow用户
提问于 2016-03-29 07:54:36
回答 5查看 145关注 0票数 0
代码语言:javascript
复制
class MyClass {
    private:
        unsigned int currentTimeMS;
    public:
        void update() {
            currentTimeMS = getTimeMS();
            // ...
        }
};

class MyClass {
    public:
        void update() {
            unsigned int currentTimeMS = getTimeMS();
            // ...
        }
};

主游戏循环中的update()调用,所以在第二种情况下,我们得到了很多分配操作(无符号int currentTimeMS)。在第一种情况下,我们只得到一个分配和使用之前分配的变量。这些代码中哪一种更适合使用,为什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-03-29 07:59:20

我推荐第二个变量,因为它是无状态的,并且变量的范围更小。只有当您真的遇到性能问题时才使用第一个,我认为这是不可能的。

如果以后不修改变量值,还应该考虑将其设置为const,以便在代码中表达这一意图,并为编译器提供额外的优化选项。

票数 8
EN

Stack Overflow用户

发布于 2016-03-29 08:00:30

这取决于你的需要。如果只需要在currentTimeMS中临时使用,那么肯定会在那里声明它。(在您的例子中,#option2)

但是--如果类的实例需要它的值(即在其他方法中使用),那么您应该将它声明为一个字段(在您的例子中,#option1)。

票数 1
EN

Stack Overflow用户

发布于 2016-03-29 07:57:51

在第一个示例中,您要保存这个类对象的状态。在第二个例子中,您没有,所以在调用currentTime ()时会丢失它。

真正由你来决定你需要哪一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36278521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档