0

以下に示す形式の大規模なプロジェクト内に関数があります (func は、一部の Abc クラスの呼び出し階層内で 5 回呼び出されます)。

 void Test::func(std::string c)
 {
       cout<<c;
 }

関数 func は、大きな階層内のいくつかの関数によって呼び出されます。しかし、関数 func が行うことは文字列を出力することだけです。文字列を印刷する代わりに、その出力をどこかに (ベクトル形式で) 保存して、func の階層が始まる時点で後でプログラムで使用できるようにします。この出力を印刷する代わりにどのようにキャプチャすればよいかについては、まったくわかりません。誰か助けてください。

編集:関数から値を返したくありません...そうすると...呼び出し階層全体が乱れるためです...戻る代わりに他の方法がありますか?

独自のデータ構造を定義して保存できるようにしたいのですが、方法がわかりません??

4

1 に答える 1

5

もちろん:

class Test
{
    std::stringstream accum;

    void func(std::string);
};

void Test::func(std::string c)
{
    accum << c;
}

また

class Test
{
    std::vector<std::string> accum;

    void func(std::string);
};

void Test::func(std::string c)
{
    accum.push_back(c);
}
于 2012-06-07T12:49:05.333 に答える