如何在某个地方调用函数的一部分而不是整个函数?

时间:2015-06-03 10:07:51

标签: c++ function visual-c++ if-statement call

我试图调用一个在其他地方的函数内部定义的条件,但我不知道是否可能。 此函数是类的成员:

  void CMainDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
    int ii=M_TabCtrl1.GetCurSel();  

if(ii==0)
        {
         GetDlgItem....
         GetDlgItem....
        }
else if(ii==1)
   {
    ///GetDlgItem....
   ///GetDlgItem....
   }
else
  {
  ////
  }
  }
    // TODO: Add your control notification handler code here
    *pResult = 0;
}

我试图直接在其他地方调用并执行以下循环,但我不知道如何。

if(ii==0)
    {
GetDlgItem....
GetDlgItem....
}

2 个答案:

答案 0 :(得分:4)

如果你想从其他地方调用一段代码,你需要使它成为一个函数。然后,您可以调用此新函数两次:从原始代码位置,以及您想要再次使用它的位置:

void your_function()
{
    // Your 'loop'
    // Note that 'if' is not a loop but a condition
    if(ii==0)
    {
        GetDlgItem....
        GetDlgItem....
    }
}

void CMainDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
    ...
    your_function();
    ...
}

// Somewhere else, call it again:
void something_else()
{
    ...
    your_function();
    ...
}

答案 1 :(得分:2)

C ++没有允许直接在程序中间输入的入口点的旧Fortran概念。在C ++中,函数或方法只有一个入口点:它的开头。

最好放一个干净的结构:如果可以从不同的点调用一段代码,使其成为一个函数或一个方法,然后从你需要的地方调用它。