This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
programming:cpp:class [2022/04/18 09:19] odagawa |
programming:cpp:class [2022/05/25 08:01] (current) odagawa |
||
|---|---|---|---|
| Line 51: | Line 51: | ||
| また,デバッグなどでクラスの中身を見たい場合に出力ストリームをオーバーロードしておくと便利.\\ | また,デバッグなどでクラスの中身を見たい場合に出力ストリームをオーバーロードしておくと便利.\\ | ||
| - | 自分は使わなかったが,入力ストリームをオーバーロードすれば,テキストファイルから一括で入力することも可能になる気がする.\\ | + | <del>自分は使わなかったが,入力ストリームをオーバーロードすれば,テキストファイルから一括で入力することも可能になる気がする.</ |
| - | 出力ストリームの例は以下の通り. | + | 実際に使ってみたらできた.\\ |
| + | 入出力ストリームの例は以下の通り. | ||
| <code cpp MyClass.hpp> | <code cpp MyClass.hpp> | ||
| #ifndef MYCLASS_HPP | #ifndef MYCLASS_HPP | ||
| #define MYCLASS_HPP | #define MYCLASS_HPP | ||
| + | |||
| + | #include < | ||
| class MyClass { | class MyClass { | ||
| Line 64: | Line 67: | ||
| | | ||
| friend std:: | friend std:: | ||
| + | friend std:: | ||
| | | ||
| }; | }; | ||
| Line 71: | Line 75: | ||
| <code cpp MyClass.cpp> | <code cpp MyClass.cpp> | ||
| #include " | #include " | ||
| + | |||
| + | #include < | ||
| std:: | std:: | ||
| Line 77: | Line 83: | ||
| return os; | return os; | ||
| + | } | ||
| + | |||
| + | std:: | ||
| + | is >> obj.var1 >> obj.var2; | ||
| + | return is; | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | '' | ||
| + | 自動的に '' | ||
| + | テンプレートを使うと上手くいくらしく,グローバルなヘッダーに以下を書いておく. | ||
| + | <code cpp> | ||
| + | |||
| + | template< | ||
| + | F operator!=(T a, T b) { | ||
| + | return !(a==b); | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||