私は次のように定義されたメンバー関数を持っています:
void printSomeData(std::ostream& str) const;
この方法で別のクラスからそのメンバーに電話をかけようとすると、次のようになります。
myclass.printSomeData(std::ofstream("foo.txt"));
次のエラーが発生します。
エラー:「myclass :: printSomeData(std :: ofstream)」の呼び出しに一致する関数がありません</ p>
注:引数1の'std :: ofstream {aka std::basic_ofstream}'から'std:: ostream&{aka std :: basic_ostream&}'への既知の変換はありません</ p>
ただし、以下のように最初にofstreamをインスタンス化する関数を呼び出すと、エラーは発生しません。これは実際には理解できません。
std::ofstream foo("foo.txt");
myclass.printSomeData(foo);
誰でも私に手がかりを与えることができますか?
ありがとうございました