假设我有一个简单的C ++程序。
Function_C()
{
/*pass;*/
}
Function_B()
{
Function_C();
}
Function_A()
{
Function_B();
}
int main()
{
int x,y;
std::cin >> x >> y;
Function_A();
}
问题是:如果我想在x
中使用输入y
和Function_C
(比如做比较),我需要将x
和y
传递给Function_A
,然后传递到Function_B
,最后传递给Function_C
,我只是因为Function_A
而将参数添加到Function_B
和Function_C
中。好像是坏代码:(
那么,善良的堆栈溢出,谁能提供更好的想法?
答案 0 :(得分:6)
这不一定是糟糕的代码 - 甚至还有一个名称,它在某种程度上使模式合法化:从上面参数化。 (Acknowledge @Paul Evans)。它优于使用全局变量。
面向对象的编程可以避免这种情况。基于配方的解决方案
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
With simple float left it hides slowly fine:
<div class="first">
<div class="example1">1</div>
<div class="example1">2</div>
<div class="example1">3</div>
<div class="example1">4</div>
<div class="example1">5</div>
<div class="example1">6</div>
<div class="example1">7</div>
<div class="example1">8</div>
<div class="example1">9</div>
<div class="example1">10</div>
<div class="example1">11</div>
<div class="example1">12</div>
<div class="example1">12</div>
<div class="example1">13</div>
<div>
<br><br><br><br><br><br><br><br><br><br><br><br><br>
Now flex center, when you hide it makes rude effect, it isnt like div.example1:
<div class="second">
<div class="example2">1</div>
<div class="example2">2</div>
<div class="example2">3</div>
<div class="example2">4</div>
<div class="example2">5</div>
<div class="example2">6</div>
<div class="example2">7</div>
<div class="example2">8</div>
<div class="example2">9</div>
<div class="example2">10</div>
<div class="example2">11</div>
<div class="example2">12</div>
<div class="example2">13</div>
<div class="example2">14</div>
</div>
</div>
可能会更好地扩大规模。
答案 1 :(得分:4)
这可能就是你想要做的事情,它是一种从上面称为参数化的模式。当然,给予x
和y
全局范围是您想要避免的。