首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该在函数中使用成员变量还是声明变量?

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

Stack Overflow用户
提问于 2011-04-29 10:58:42
回答 2查看 183关注 0票数 0

我有一个类UI来处理我的C++程序的控制台I/O。它将有4-5个成员函数,这些函数将使用变量'string input‘来获取cin输入,其中一些函数将是递归的。现在我在想,我是应该在这些函数的开头声明'string input‘,还是应该有一个私有成员变量,只在每个函数的开头声明input.clear()。从风格p-o-v到效率p-o-v,最好的选择是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-29 11:05:54

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

1)不管怎样,它在语义上是你想要的。

2)如果你正在递归地调用你自己,你可能希望每个递归调用都有单独的变量,局部变量会自动给你。

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

票数 3
EN

Stack Overflow用户

发布于 2011-04-29 11:33:06

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

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

https://stackoverflow.com/questions/5827375

复制
相关文章

相似问题

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