fstream
を使用してファイルに読み書きするFileクラスを作成しています。私は、機能面ではなく、むしろfstream
オブジェクトの寿命に関するベストプラクティスにおいて問題はない。カスタムファイルクラスのfstreamオブジェクトの寿命
fstream
オブジェクトを新しいFile(path)
ごとに作成されたメンバー変数として格納し、各Fileインスタンスの有効期間にわたってそのfstream
を使用する方が良いですか?
それとも、私が(などreadBytes()
、writeBytes()
、exists()
、isDirectory()
、)Fileインスタンス上で呼び出すことができ、個々の機能、私は地元のifstream/ofstream
を宣言する必要があるため、実行する必要が何をすべきか、および機能彼らは範囲外になり、自動閉鎖されていますか?
最初のケースでは、多くのファイルが「オープン」になっていると、同時に多数のストリームをアクティブにしてしまうと不利になることが懸念されます。
2番目のケースでは、fstream
オブジェクトを継続して作成して破棄するのは非効率的なようです。
コメントをいただけると幸いです。
ありがとう、 Jon。
あなたの必要なものと何を達成するのかを言うことは難しいので、それを伝えることは不可能です。 –
私は彼が、彼のクラスが、インスタンスの存続期間にわたってすべてのメンバ関数によって使用される実際のファイルの 'fstream'インスタンス変数を含むべきかどうか、あるいは各関数のために別々の' fstream'インスタンスを作成する必要があるかどうかを知りたいと思いますコール。彼が各機能の 'パス'を再オープンしたいのかどうか分からないので、質問の言い直しが必要かもしれません。 – hochl