2014年1月5日日曜日

C++ 静的メンバ



今回は、C++のクラスの特徴についての
話になります。(^^)

C++では、クラスに静的メンバ変数というものが
定義できます。




通常クラスからオブジェクトを生成すると、そのオブジェクトごとにメンバ変数用の

メモリが割り当てられます。

しかし、静的メンバ変数の場合、クラスで共通のメモリ領域が割り当てられます。

そのため、各オブジェクトで同じ値を共有するような場合に

静的メンバ変数を利用すると便利です。(^^)

なぜなら、通常のメンバ変数と違い、オブジェクトごとにメモリ領域を

確保しないので、メモリを節約することができるからです。

たとえば、消費税率を入れるメンバ変数というのがある場合、この変数は

各オブジェクト共通で使用できるはずです。

もし、消費税率がそれぞれのオブジェクトのメンバ変数にあると、

それはメモリ領域の無駄遣いになります(-_-;)

また、静的メンバ関数というものもあります。

これは、静的メンバ変数のように共通のメモリ領域と使った関数ではなく、

静的なメンバ変数にしかアクセスできない関数のことです。(^^;)
使用例は次回以降で詳しくみていきます。

オブジェクトをメンバにする
今まで、変数や関数をメンバに持つクラスというものを紹介してきました。
さらに、オブジェクトそのものもメンバに加えることができます。(^^)

たとえば、時刻を計算したり、表現するTimeクラスのオブジェクトを作った場合

いろいろな所で、活用できそうです。

もし、予定表をつくるためScheduleクラスを作成するとしたら、

先のオブジェクトを利用すると簡単に作成できそうな気がします。

このように、配列、文字列や日付などあらかじめ用意しておくと

便利なオブジェクトはたくさんあります。

それらのオブジェクトを有効活用して、新しくクラスを作る手間を

削減できるようにしたいものです(^^;)


今日の名言
何かで悩みはじめ、頭の中が水車を動かしているエジプトのラクダのように
回転し始めると、私は体を十分に運動させて、こうした「憂鬱な気持ち」を
追い払うことにしている。悩みに対する最良の解毒剤は運動である。
悩みのある時は、できるだけ頭脳を使わずに筋肉を使うことだ。そうすれば、
その効果にびっくりするに違いない。私はいつもこの手を使う。
運動を始めると、悩みはすぐに消えてしまう。
                          エディー・イーガン大佐

もし世界中の人間の悩みを一つ所に積み上げてその人数に分け、平等に
分配したら、たいていの者は自分の取り分に満足して立ち去ることだろう。
                          ソロン

自分の悩みに「損害停止」の命令を出そう。これこれの事柄にはどのくらいの
不安が相当するか決定する-そしてそれ以上の不安は断るのである。
                          デール・カーネギー