2011-09-16 9 views
-3

私は関数内の関数のようなことを可能にする何かを探しています。 fooがCを変更することになっているとの関数であるが、そのためにn個を必要とするしかしいくつかの関数の間の分割タスク

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

を: は、ここではより明確にする例です。 fooはやや複雑なので、別のサブ関数に分割したいと思っています。 foo以来ニーズnそれは

+2

ここには「本当の」問題はありません。 n&cはどちらも同じクラスの中にありますか?関数の分割はここでは問題ではないはずです。 – dip

答えて

2

ただ、同じクラス内のすべてのそれらのサブ機能を入れて、それらをプライベートにする(変数のトンが私の本当の問題である)のnを通過せずに(フレンド機能によりなんとか単純ではないのですか?

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

それで周りに道はありませんか? :) Damn – bios

+4

@Bios:あなたの実際の問題は何ですか?あなたは何も説明しなかったし、この答えの一般的な考え方は複雑なクラスのための最も賢明なデザインをカバーしています。 –

0

すでに他の回答で指摘されているように、単純なプライベート関数で十分です。元の関数内部変数へのアクセスが必要な場合を除き、C++ 11では不可能です。ラムダ関数を見たいと思っていますが、それはそれらが意味するものではないと確信しています。

関連する問題