【发布时间】:2012-10-22 01:50:01
【问题描述】:
我正在实现一个类,并且我有一个函数使用大量需要声明和初始化的变量来执行操作。
我希望变量声明不要弄乱函数并执行以下操作:
doFunction(){
declare();
//Do things with variables declared in declare()
}
void declare(){
//declare lots of variables here
}
这不起作用,因为变量的作用域是 declare() 并且 doFunction() 看不到。处理这个问题的明智方法是什么?
【问题讨论】:
-
可能有不同的处理方式,具体取决于您的问题到底是什么。您能否提供更多背景信息?解决方案的范围从重构代码到制作包含所有变量的支持类,再到制作宏。
-
没有庞大的功能。不要污染范围。使用容器。以合乎逻辑的方式考虑因素。
-
如果你的函数需要太多变量以至于它成为一个问题,我认为函数的设计可能存在问题,它实际上应该被拆分为多个函数或否则重新设计。我认为这个可能是meta.stackexchange.com/questions/66377/what-is-the-xy-problem 的一个例子,你已经意识到你的函数太大/太复杂,并决定解决方案是隐藏变量声明并询问这个而不是问题本身.不过我可能错了:)