在几个函数之间拆分任务

时间:2011-09-16 01:52:40

标签: c++ coding-style

我正在寻找一些能让我在函数中执行某些功能的东西。 这是一个让它更明显的例子:

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

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

3 个答案:

答案 0 :(得分:2)

将所有这些子函数放在同一个类中并将它们设为私有?

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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