我正在寻找一些能让我在函数中执行某些功能的东西。 这是一个让它更明显的例子:
class A{
private:
int n;
int c;
public:
void foo();
}
然而,foo是一个应该改变c的函数,但需要n。 foo
有点复杂,所以我想把它分成不同的子功能。
由于foo
需要n
,所以通过朋友函数(不传递n)(我真正的问题中存在大量变量)并不简单。
答案 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函数 - 尽管我确信这不是它们的意思。