C ++如何将参数传递给嵌套函数?

时间:2017-12-21 12:03:35

标签: c++ function

假设我有一个简单的C ++程序。

Function_C()
{
    /*pass;*/
}
Function_B()
{
    Function_C();
}
Function_A()
{
    Function_B();
}
int main()
{
    int x,y;
    std::cin >> x >> y;
    Function_A();
}

问题是:如果我想在x中使用输入yFunction_C (比如做比较),我需要将xy传递给Function_A,然后传递到Function_B,最后传递给Function_C,我只是因为Function_A而将参数添加到Function_BFunction_C中。好像是坏代码:(

那么,善良的堆栈溢出,谁能提供更好的想法?

2 个答案:

答案 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)

这可能就是你想要做的事情,它是一种从上面称为参数化的模式。当然,给予xy全局范围是您想要避免的。