あるクラス内で,ファイル名が設定されていればファイルに,設定されていなければ標準出力に出力したく,切り替え以外のコードの共通化をしたいです.
具体的にはストリーム先を適当な判定で切り替えられればいいのですが,ストリーム関係のクラスの関係が今ひとつわかっておらず,どなたか教えていただけないでしょうか.
以下のようなイメージです.
c++
1#include<iostream> 2#include<fstream> 3 4class test_class{ 5 public: 6 std::string filename 7 8 void output(){ 9 std::ofstream stream(filename) 10 if(!stream){ 11 // filenameが設定されてなければ標準出力に出したい 12 stream = std::cout; //これはだめ 13 } 14 // filenameまたは標準出力に出力 15 stream << "hogehoge" << std::endl; 16 } 17};
何卒宜しくお願いします
回答4件
あなたの回答
tips
プレビュー