C++ を触ってのメモ1(テンプレート、Operator)

私用メモ

 

テンプレート

・型ごとにいちいち関数やクラスを作るのは面倒

・操作があらかじめ決まっているので、それを任意の型の変数を扱う際にコピべする以外のやり方がほしい時に使う

・template<class T> T function(T a, T b){} などと宣言を書く。通常はヘッダファイルに入れる。仮の型としてTと書いてあるところ(書き方は決まってなくて仮の文字はTでなくても良い)にintとか任意の型を書いて使い回せる

・一度定義しておけば int function(int a, int b) などと任意の型を入れて使う。型はクラスでも良い。

operator

・operator・・・演算子のこと。= とか () とか + とか。

・通常演算子はデフォルトの操作をするが、クラスに対しては自分で定義して使うことも可。定義するときにoperator を使う

・例えば配列に配列を代入するような操作は=でそのまま扱えなくて関数作って処理したりするけど、値と同じように扱いたいときとかに使える

・下記はテンプレートクラス内で定義して、operatorを使って一次元配列を二次元配列っぽく指定して値を取り出すのに使う例 ※()という演算子を定義してる。Tはテンプレートの任意の型。Arrayはクラス内で定義したメンバ変数の配列。

T& operator()(int index0, int index1) {T& operator()(int index0, int index1) { return Array[index1 * mSize0 + index0]; }

 

以上