ユーザー定義オブジェクトを印刷する方法が不思議です。これにより、オブジェクトを出力ストリームに出力することを意味します。ストリームクラスで、JavaのObject型がすべての派生クラスに対してtoString()メソッドを提供する方法と同様に、あらゆる種類のオブジェクトを出力できるメソッドを提供することは可能ですか? JavaのObjectの例では、すべてのクラスがObjectの暗黙のサブクラスであるため、ストリームクラスからクラスを派生させることができないという問題があると思います。他にはありますか?ユーザー定義オブジェクトを印刷する方法
答えて
toString()
関数をオーバーライドして呼び出します。単にあらゆる種類のオブジェクトを印刷する神のクラスをどのように持つことができるのか分かりません。
フラグで判断すると、彼はC++で印刷する方法を知りたいと思うと思います –
すべての種類のオブジェクトをストリーミングすることはできません。たとえば、スレッドをどのように流すのですか?これはどういう意味ですか?
@Aidanc回答が働く可能性があります。すべてはあなたが何をしたいかによって決まります。オブジェクトフィールドをコンソールに印刷する場合は、それが解決策です。
しかし、ストリームを人間が読まずにネットワーク経由で送信する場合は、ObjectOutputStreamを使用します。オブジェクトは、ソケットまたはファイルのいずれかであっても、ストリームとの間でオブジェクトを書き込み(およびObjectInputstreamが読み取ることができます)ことができます。
ほとんどすべてのオブジェクトをそのように送ることができます。Serializableを実装する人は、自分自身でシリアル化(オブジェクトを0と1のシーケンスに変換する)を担当し、その他の場合はExternalizable APIを使用できます。
フラグで判断すると、彼はC++で印刷する方法を知りたいと思うと思います –
あなたは2つのことを見てみたい:Javaの反射
の概念は基本的に両方の組み合わせは、あなたがそう任意のオブジェクトに内省することができます
- Javaクラスオブジェクト
- あなたが望むようにオブジェクトを印刷するための一般的な方法を思い付くのはかなり簡単です。私。
class foo { friend std::ostream& operator<<(std::ostream& os, const foo& f) { return os << f.x; } public: // ... private: int x; }; int main() { foo myfoo; std::cout << "myfoo is " << myfoo << '\n'; }
はるかに優れたガイドがそこにこれを行う方法のがあります。このような何かをやって
だけ過負荷
std::ostream& operator<<(std::ostream&, const foo& f)
:これはC++タグ付けされているのでString myClassName = "com.my.class.NameHere"; Class c = Class.forName(myClassName); Method m[] = c.getDeclaredMethods(); for(Method method: m) System.out.println(method.toString());
フラグで判断すると、 C++ –
、ここではC++の答えです。
あなたがbizzare構文を使用していた場合、私は知りませんでした:appologies。それ以外の場合:いくつかの構文エラーが修正され、使用法コードが追加されました。 –
@MooingDuck Na、ちょうど入力する前にあまり考えることはありませんでした。 – Pubby
Pubbyの答えを幾分伸ばして、少し変更してすべてのストリームタイプに対してoperator<<
関数を機能させることができます。ここには、をにストリームする方法も示されています。
class foo {
//output works for all basic_ostreams
template<class e, class t>
friend std::basic_ostream<e,t>&
operator<<(std::basic_ostream<e,t>& os, const foo& f)
{
return os << f.x;
}
//input is very similar. Here's the differences:
// istream instead of ostream
// >> instead of <<
// foo is not const
template<class e, class t>
friend std::basic_istream<e,t>&
operator>>(std::basic_istream<e,t>& is, foo& f)
{
return os >> f.x;
}
public:
// ...
private:
int x;
};
int main() {
foo myfoo;
std::cout << "enter foo: ";
std::cin >> myfoo;
std::cout << "myfoo is " << myfoo << '\n';
std::wcout << L"myfoo is " << myfoo << L'\n';
}
- 1. ユーザー定義型のstd :: vectorを印刷する
- 2. Oracleでプロシージャの定義を印刷する方法は?
- 3. 定義済みのJavaオブジェクトを印刷するには?
- 4. ユーザー設定の印刷
- 5. 標準オブジェクトとユーザー定義オブジェクトを追加する方法は?
- 6. strutsアクションクラスのテキストボックスにユーザー定義オブジェクトを設定する方法
- 7. PHP、定数の印刷値(定義)
- 8. テーブルを印刷する印刷ボタンを挿入する方法
- 9. Groovyでクローズ定義/ソースを印刷
- 10. 印刷文書の印刷の線幅を固定する方法C#
- 11. コレクションのコレクションからユーザー定義オブジェクトを取得する方法
- 12. ユーザー定義のデータ型オブジェクトをDetailsViewにバインドする方法は?
- 13. ユーザー定義オブジェクトを他のアクティビティに送信する方法
- 14. AWKで定義された順序で配列を印刷する方法3.1.3
- 15. 印刷方法をバイパスする方法
- 16. ユーザー入力のMIN値を印刷する方法
- 17. JDBC、ユーザー定義のオブジェクトとユーザー定義オブジェクトのarraylist
- 18. スクリプトが未定義印刷し
- 19. EPPlus印刷領域 - 列定義
- 20. ハンドルバーヘルパーを使用してJSONオブジェクトを印刷する方法
- 21. 各印刷ページでGridViewのヘッダーを印刷する方法
- 22. オブジェクトの個々の値を印刷する方法は?
- 23. Rオブジェクトの構造をコンソールに印刷する方法
- 24. TreeSetからオブジェクトを印刷する方法
- 25. リスト内のオブジェクトのプロパティを印刷する方法は?
- 26. デベロッパーツールコンソールのオブジェクトをJavascriptで印刷する方法
- 27. オブジェクトの内容を正しく印刷する方法は?
- 28. オブジェクトの属性を印刷する方法は?
- 29. オブジェクトの実装クラスを印刷する方法
- 30. オブジェクトの配列をスクリーンに印刷する方法は?
待ち、あなたは私たちがJavaの 'のtoString()'をどうのようにC++でオブジェクトを印刷する方法を知りたい、またはあなたが両方の言語でオブジェクトを印刷する方法を知りたい、またはあなたが何を求めていますか? –