>>80
そう考えてしまうのはオブジェクト”思考”ができていないから。
例えば、Func1を利用する巨大な処理がある場合、後でファイルからではなく
メモリからアクセスするように変更しようとしたとき、全て書き換えることになる。

基底クラスStreamで純粋仮想関数Readという感じで作っておき、
派生クラスFileStream、MemoryStreamなどで、Readをオーバーライドすれば、
Streamを扱う側は、それがメモリであるかファイルであるかを考えることなく、
それらを扱えるようになる。

簡単なリードライトであれば、初心者でも一日ぐらいでストリームクラスを自作でき、
その効果が実感できると思う。