関数にfoutまたはcoutを渡す方法を見つけようとしています。これを処理する論理的に簡単な方法があることに気づきます。たとえば、データを出力する関数にifsを置くか、双方向で関数を書くだけです。しかし、それは原始的で非効率的です。このコードが機能することはないと思います。ここに置いて、自分が「好き」にしたいことを簡単に確認できるようにします。私がc ++を使用してアルゴリズム設計クラスを取っていることに注意してください。私は決して熟練したc ++プログラマではありません。私のクラスは、表示されるヘッダーの使用に限定されています。
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
void helloWorld(char);
ofstream fout;
int main()
{
fout.open("coutfout.dat");
helloWorld(c);
helloWorld(f);
return 0;
}
void helloWorld(char x)
{
xout << "Hello World";
return;
}
これらはどちらもostream
を継承しているため、次のように試してください。
void sayHello(ostream& stream)
{
stream << "Hello World";
return;
}
次に、メインでオブジェクト(coutなど)を渡します。これで問題なく動作するはずです。
はい。あなたの機能をしましょう
sayhello(std::ostream &os);
次に、関数でos
の代わりにxout
を使用できます。
(ところで、 using namespace std
std名前空間全体をダンプするため、お勧めしません。 using std::cout
などでも大丈夫です。)