在几个函数之间拆分任务

Splitting task among several functions

本文关键字:函数 之间 拆分 任务 几个      更新时间:2023-10-16

我正在寻找的东西,使我能够做的东西像一个函数中的函数。下面是一个更明显的例子:

class A{
 private: 
 int n;
 int c;
 public:
 void foo();
}

然而foo是一个函数,应该改变c,但需要n。foo有点复杂所以我想把它分成不同的子函数。由于foo需要n,通过朋友函数(不传递n(在我的实际问题中有大量变量)是不简单的

只是把所有这些子函数在同一个类中,并使它们私有?

class A
{
    int n;
    int c;
    void foo_thing_1();
    void foo_thing_2();
public:
    void foo() { foo_thing_1(); foo_thing_2(); }
};

正如其他答案所指出的那样,简单的私有函数应该足够了——除非您还需要访问原始函数的内部变量——这在c++11中是不可能的。在即将到来的c++0x中,你可能想看看lambda函数——尽管我确信这不是它们的本意。