我应该在函数中使用成员变量还是声明变量?

should I use member variable or declare variable inside functions?

本文关键字:变量 声明 成员 函数 我应该      更新时间:2023-10-16

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

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

从语义上讲,这就是你的意思。

2)如果你递归地调用自己,你可能需要每个递归调用单独的变量,这些局部变量会自动给你。

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

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