先日、プログラムでcoutをオーバーロードする方法を教えられましたが、すべてを出力する方法がわかりません。
template <NODETYPE>
friend ostream &operator <<(ostream &, List<NODETYPE>& );
template<typename NODETYPE>
ostream &operator <<(ostream& output, List<NODETYPE>& value)
{
output << value;
return output;
}
ただし、私のプログラムには出力するオブジェクトが少なくとも5つあり、そのうちの2つはdoubleです。「doubleはテンプレート定数パラメーターの有効な型ではありません」というエラーが表示されます
私の2つの問題は次のとおりです。最初のオブジェクトだけでなく、すべてのオブジェクトを出力するにはどうすればよいですか。ダブルを出力するにはどうすればよいですか。どうぞよろしくお願いします!
編集:巨大な編集:::
さて、私は何か間違ったことをしていることに気づき、ヘッダーとソースファイルを再配置しました。
そして、講師のクラスを欠席することは、これまでに犯した最大の過ちの1つであることに気づきました。私の次の誤りは、私が仮定した情報ではなく、私のすべての仮定をあなたに与えることでした。
私の代入では、次のように書かれています。•リンクリストを出力する代入演算子とフレンド関数を記述します。
私の主な関数(私が変更することを許可されていない関数)の他のほとんどすべての行に、coutがあります:
List<int> Li, Li2, Li3;
List<double> Ld, Ld2;
これらは私のオブジェクトです。そして、私のすべてのカウトは次のようになります。
cout << "Ld is: " << Ld << endl;
ヘッダーファイルとソースファイルを再配置した後、次のエラーが発生しました: "'std :: operator << [with_Traits = std :: char_traits](((std :: basic_ostream>&)(& std :: cout))、((const char *)'Ld is "))<
私が持っているすべてのcoutステートメントに対してそれを取得します。Ldの終了ステータスが1か何かよりも多くの情報があるので、これから説明します。
私はまだこのostreamオーバーロード関数の使用に完全に熱心ではないので、助けていただければ幸いです。ありがとうございました。
編集:: -
私はこの投稿にほとんどすべてのコードを入れました:collect2:Ldが1つの終了ステータスを返しましたビルドメイクエラー
誰かが私に過負荷を手伝ってくれるとしたら、それは私が残した唯一の問題だと思うので、他のすべてを理解することができます。
ありがとう!!