どうも,星姫でーす.
今回は構造体やクラスを扱う上で便利なテクニックを学びます.
その名も「演算子関数」または「オペレータ関数」です.
前回もその前も,実行結果は以下のように”なります”と言いましたが,これは間違った日本語なんですね.教授に指摘されました.
実行結果は以下の”通りです”が正しい答えです.決して正しい答えには”なりません”のでご注意ください(笑)
では本題に入ります.
プロジェクト名「OperatorFunc」として,新規でプロジェクトを立ち上げてください.
今回は少しだけ数学が絡みます.大学進学レベル以上なら問題ありませんが,小学生にはちょっと難しいかも.
わからないときは近くのお兄さん,お姉さんが持っている参考書に聞いてみるか.
ネット上で「ベクトル」「空間ベクトル」のキーワードで学んでください.
ではベクトルについて思い出した(学んだ)ところで(これまた雑!?),三次元ベクトルの加算と減算を行ってみましょう.
Structs.hとMain.cppファイルに以下のコードを書いてください.
Structs.h
Main.cpp
実行結果は以下の通りです.
わざわざ構造体のメンバを一つ一つ書き出して操作する必要がなくなりました.
また直感的に演算子を用いるだけで,意図した処理を行ってくれるのでとても便利です.
では,クラスについてもやってみましょう.
追加で「XYZpos」という名前でクラスを作ってください.
クラスの作り方については前回と同様です.
そこに以下のコードを書いていきます.
Main.cpp
XYZpos.h
XYZpos.cpp
実行結果は以下の通りです.
さて,このコードはクラスの扱いのテストも兼ねています.
コンストラクタの多重定義,オーバーロードなんてことを行っています.
新たに static メンバの導入もひそかに行いました.
気になる方はぜひ教科書や参考書で確認してみてください.
ということで,今回新しく加わったキーワードは二つ, static, operator です.
これまで学んだキーワード27手を一覧にしてみます.
◆変数の型
bool, char, int, float, double, void
◆型修飾子
unsigned
◆制御文
if, else, while, for, switch, case, default, break, return
◆値
true, false
◆名前空間
using, namespace
◆構造体,クラス
struct, class, private, public, this
◆演算子関数
operator
◆記憶クラス指定子
static
最後の記憶クラス指定子については,理解は保留で結構です.
キーワードも全63手において,27手とほぼ半分まで会得しました.
カンフーマスターならぬC++マスターになる日も近い!?
2010/01/11 初記.
成人式ですか,もう4年前…懐かしいなぁ.
あ,会社から出ている課題の提出期限が近づいている.
とりあえず,修士論文を書き始めなくては!!
…そして時は流れ…
なんとか、なんとか修士論文を書き終え、卒業することができました。
危うく精神的に病気になるところでした。(忙しすぎて…)
会社の課題に手を回そうとしたら、続けて英語論文と投稿論文を書くことに…トホホ。
卒業旅行中に課題を進めようとPCを持ち込むも、旅行中に高熱を出してしまい旅行どころでも無かった。
課題は進まず、結局手つかずで提出し、こっぴどく怒られました。
そして入社して、課題をやっていないことで出遅れた感が半端でない状況。
このままだと解雇もあり得るので、もう少し余裕が出てきたら更新することにします。
それと、今回のレッスンの最後の実行結果におかしな点を発見。
Vec4が出る理由を是非解明してみてね!(コラコラッ)
2010/04/04 追記。