【问题标题】:should I use member variable or declare variable inside functions?我应该在函数中使用成员变量还是声明变量?
【发布时间】:2011-04-29 02:58:42
【问题描述】:

我有一个类 UI 来处理我的 C++ 程序的控制台 I/O。 它将有 4-5 个成员函数,它们将使用变量“字符串输入”来获取 cin 输入,其中一些函数将是递归的。 现在我想知道我是否应该在每个函数的开头声明“字符串输入”,或者是否最好有一个私有成员变量并且只在每个函数的开头输入.clear()。从风格 p-o-v 和效率 p-o-v 中,最佳选择是什么?

【问题讨论】:

    标签: c++ coding-style performance console-application


    【解决方案1】:

    如果字符串输入在长期内没有与您的对象永久关联,而只是在短期内被本地使用,则将其设为局部变量。

    1) 无论如何,这就是你的意思。

    2) 如果您以递归方式调用自己,您可能需要在每个递归调用中使用单独的变量,这些局部变量会自动为您提供。

    3) 从效率的角度来看,a) 差异可能太小而无法注意到,并且 b) 在堆栈上创建新变量可能比一直指向对象的成员变量更快,除非它的构造是很贵。

    【讨论】:

      【解决方案2】:

      同意 dfan。另一点是,如果您将其定义为成员变量,您可能需要将您的成员函数实现与该字符串的来源解耦。因此,当您将来更改字符串的来源时,例如,您从文件 I/O 而不是 std::cin 读取它,您的方法将保持不变。

      【讨论】:

        猜你喜欢
        • 2019-09-23
        • 2022-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        相关资源
        最近更新 更多