問題タブ [ostream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
operator-overloading - ostream のオーバーロード
たとえば、TEST in TEST.hのクラスがあります
フレンド ostream& operator<< (ostream& out, const test& outstr);
TEST.ccで
ostream& operator <<(ostream& out, test& strout) { out<< "TEST"; 戻ります。}
メインテスト x; cout<< x;
次のエラー メッセージが表示されます: error: undefined reference to `operator<<(std::basic_ostream >&, test const&)
どうしたの?
c++ - std::vector の Typedef および ostream 演算子
私はクラス Chromosome を作成しましたが、これは単に ostream 演算子を使用した vector のラッパーになったため、代わりに typedef vector を使用することにしました。ただし、テンプレート化された ostream オペレーターに問題があります...これが最善の方法ですか? (私はいくつかのアプローチを見てきましたが、どれもうまくいきませんでした)
現時点で私が得ているエラーは次のとおりです。
乾杯。
c++ - オーバーロード<<、ostreamを返すとエラーが発生します。C ++
<<演算子のオーバーロードに問題があります。すべてが印刷されて正常に入力されますが、ostreamを返そうとすると、次のエラーが発生します。
式:_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)
また、このプロジェクトでは、ostreamを正常に返した別の<<演算子をすでにオーバーロードしています。この演算子は、次のコードでは使用されていません。コードは次のとおりです。
他のヘッダーのこのコードは完全に正常に機能します。
戻る前に、すべてが画面に正常に印刷されます。そして、これら2つの関数は私には同じように見えますが、C ++の経験が豊富な人は、そうでないことを教えてくれますか?
c++ - C++ オーバーロード << エラー
私が得ているエラーについて助けを得たいと思っています.同様の質問を検索しましたが、私が求めているものは実際には得られませんでした. コード スニペットを以下に示します。
いくつかの文字列を含むリスト ボックスがあります。これらは、選択した他のドロップダウン ボックスによって異なります。このボックスの内容と、ユーザーがドロップダウンから選択した内容をファイルに保存したいと考えています。ただし、次のエラーが発生します(VS 2008で開発しています)。
エラー C2804: バイナリ
'operator <<'
にはパラメーターが多すぎます
エラー C2333:'NewSelectionDlg::operator <<'
: 関数宣言のエラー。関数本体のスキップ
演算子をオーバーロードする構文が問題ないと信じている理由がわかりません-私が愚かなことをした、または見逃した可能性があることを誰でも見ることができます-助けてくれてありがとう。
c++ - C++ cout で科学表記法を使用しないようにする方法
これが出力
バス アナ: 3284.78 ソン ファイズ: 1784.78 ソン アナ: 5069.55
バス アナ: 7193.17 ソン ファイズ: 3908.4 ソン アナ: 11101.6
バス アナ: 15752 ソン ファイズ: 8558.8 ソン アナ: 24310.8
バス アナ: 34494.5 ソン ファイズ: 18742.5 ソン アナ: 53237
バス アナ: 75537.8 ソン ファイズ: 41043.3 ソン アナ: 116581
バス アナ: 165417 ソン ファイズ: 89878.7 ソン アナ: 255295
バス アナ: 362238 ソン ファイズ: 196821 ソン アナ: 559059
Bas ana: 793246 Son faiz: 431009 Son ana: 1.22426e+006
Bas ana: 1.73709e+006 Son faiz: 943845 Son ana: 2.68094e+006
バス アナ: 3.80397e+006 ソン ファイズ: 2.06688e+006 ソン アナ: 5.87085e+006
科学的な数値ではなく、正確な数値で数値を表示してほしい。これどうやってするの?
c++ - C++テンプレート/ostream演算子の質問
オペレーターを機能させようとしましたが、エラーがたくさん発生しました。
私のヘッダーファイル
テストファイル
エラー:
C:\ CodeBlocks \ kool \ praks3 \ vector.h | 14 |警告:フレンド宣言'std :: ostream&operator <<(std :: ostream&、const Vector&)'は非テンプレート関数を宣言します|
C:\ CodeBlocks \ kool \ praks3 \ vector.h | 14 |注:(これが意図したものでない場合は、関数テンプレートが既に宣言されていることを確認し、ここで関数名の後に<>を追加してください)|
obj \ Debug \ test.o||関数`main'内:|
C:\ CodeBlocks \ kool \ praks3 \ test.cpp | 8 | `operator <<(std :: ostream&、Vector <(unsigned short)3> const&)'への未定義の参照|
c++ - C++ostream出力操作
基本的には、すべてのベクトル座標をこの種の形式でリストする必要があります。
(x、y、z)
しかし、現時点ではこのようになっています(x、y、z、)
forサイクルの場合に使用するのが最も簡単な方法ですが、out変数から小さな文字列を差し引くことはできますか?
私のコード:
c++ - std::ostreamの子をstd::ostreamが必要なライブラリに渡す*
std :: ostreamから派生した(ロギング用の)クラスがあります。削除すると、次のようになります。
このクラスは、デルタ圧縮など、必要ないくつかの特定のことを行うために作成しました。残念ながら、それは機能しません。出力をstd::ostreamに送信するための「set_out」関数を提供するサードパーティライブラリ(ソースはありますが、かなり大きくて乱雑です)に渡す必要があります。set_out関数のプロトタイプはまさにこれです:
そして私がそれを次のように呼ぶなら:
また
期待どおりの動作が得られます。しかし、私が書く場合:
ロガーのコンストラクタとデストラクタは期待どおりに呼び出されますが、呼び出されることoperator<<
はありません。理由はわかりませんが、これが簡単な質問であることを願っています。この問題を解決できれば、準備は完了です。
誰かが正確に何が起こっているのか知っていますか?bsgs
問題は、ライブラリには、ポインタではなくaへのポインタを渡しているという手がかりがないことですが、500行以上のコードに触れる必要があるように見えるstd::ostream
よりも広い範囲のオブジェクトを受け入れるようにライブラリを修正することです。std::ostream *
避けたいのですが。
~~~~~~~~~~~~~~
編集#1:それが重要かどうかはわかりませんが、ライブラリset_out() = 0;
のクラス階層の最上位に仮想関数があり、これは(私が見る限り)さまざまなサブクラスに実装されています。ライブラリを作成している場合は、(set_out
非仮想)テンプレート関数を作成し、std :: ostreamに特化したものを提供しますが、使用可能なを定義する限り、ユーザーは好きなものを提供できoperator<<
ます。ライブラリにこの変更を加えると、半日の編集が確実に行われるように見えます。たぶんもっと簡単な方法がありますか?
c++ - 標準ヘッダーを使用するための C++ コードの移行。取得中: 「ostream」への参照があいまいです
私のUbuntu環境にはヘッダーが含まれていないため、ヘッダーの宣言を変更するためにいくつかのコードを移行しています。最終的にすべてのファイルを変更しましたが、次のエラーが発生しています。
コードは次のとおりです。
これを修正する方法を知っている人はいますか?
c++ - C ++パラメータとしてostreamを渡す
私は、メイン クラス、rolodex クラス、およびカード クラスを必要とする仮想 rolodex の宿題プロジェクトに取り組んでいます。すべての「カード」の内容をコンソールに出力するために、代入では main() が rolodex クラスの show(...) 関数を呼び出し、ostream を渡して show(...) を繰り返します。各カードの showCard() 関数を呼び出します。実際の表示は、カード オブジェクトの showCard() 関数によって行われ、提供された ostream に表示されます。
私が理解していないのは、ostream がどこにでも渡される/渡されるべき理由です。割り当ては次のようなものを求めているようです:
このようなものの代わりに:
パラメータとしての ostream の使用を誤解しているか、そのように ostream をストリームに渡す他の明白な理由を見逃していますか?