メインページ   名前空間一覧   クラス階層   アルファベット順一覧   構成   ファイル一覧   名前空間メンバ   構成メンバ   ファイルメンバ  

クラス テンプレートKSCL::CDomainedNumber< type_Data > の解説

・上限値と下限値を持つ値を管理するクラスです。. より詳しく...

KSCL::CDomainedNumber< type_Data >のコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

公開メンバ

 CDomainedNumber (type_Data p_Max, type_Data p_Min, CDomainedNumber< type_Data > *p_pcCarryUpDomainNumber=0)
 コンストラクタ。. より詳しく...

virtual ~CDomainedNumber ()
 デストラクタ。. より詳しく...

type_Data GetData () const
 数値を返します。. より詳しく...

void SetData (type_Data p_Data)
 数値をセットします。. より詳しく...

type_Data Recalc ()
 値を計算してチェックします。繰り上がり方向と繰り下がり方向両方に計算していきます。. より詳しく...


保護メンバ

virtual type_Data GetCarryUp ()
 ・繰り上がりの値を計算します。. より詳しく...

virtual type_Data GetCarryDown ()
 繰り下がりの値を計算します。. より詳しく...

virtual type_Data GetRemainder (type_Data p_carryUpData)
 繰り上がり・繰り下がりを除いた「余り」を計算します。. より詳しく...

virtual bool IsShouldCarryUp (type_Data p_Data, type_Data p_Max)
 繰り上がりすべきかどうか調べます。. より詳しく...

virtual bool IsShouldCarryDown (type_Data p_Data, type_Data p_Min)
 繰り下がりすべきかどうか調べます。. より詳しく...


保護属性

type_Data m_Data
 実際の数値を入れる変数。. より詳しく...

type_Data m_Max
 数値範囲の上限値。. より詳しく...

type_Data m_Min
 数値範囲の下限値。. より詳しく...


非公開属性

CDomainedNumber< type_Data > * m_pcCarryUpDomainNumber
 繰り上がり先へのポインタ。. より詳しく...


解説

template<class type_Data>
class KSCL::CDomainedNumber< type_Data >

・上限値と下限値を持つ値を管理するクラスです。.

 たとえば時間の「時」「分」「秒」のように、上限と下限が決められている値があります。
 そういった値を管理するためのクラスです。
 このクラスでは、上限と下限の間に値が入るようにし、繰り上がりと繰り下がりを他の CDomainedNumber クラスに 反映させることができます。
 この「チェーン」は(当然ですが)必ず下の桁から上の桁へとリンクするようにしてください。 「秒」から「分」へとリンクさせることで、秒の繰り上がり・繰り下がりが分へと反映されます。 また、当然、「分」の繰り上がり・繰り下がりが「秒」へと反映されることはありません。チェーンは下から上への 一方通行です。

引数:
type_Data  値の型。まぁ普通は int か unsigned int だと思います。


コンストラクタとデストラクタの解説

template<class type_Data>
KSCL::CDomainedNumber< type_Data >::CDomainedNumber type_Data    p_Max,
type_Data    p_Min,
CDomainedNumber< type_Data > *    p_pcCarryUpDomainNumber = 0
[inline]
 

コンストラクタ。.

 各種初期設定を行います。

引数:
p_Max  上限値。「時間」のように 60 で繰り上がるなら、 59 を渡してください。
p_Min  下限値。「時間」のようにマイナスがないなら 0 を渡してください。
p_pcCarryUpDomainNumber  繰り上がり・繰り下がり先です。なければ NULL を渡してください。

template<class type_Data>
virtual KSCL::CDomainedNumber< type_Data >::~CDomainedNumber   [inline, virtual]
 

デストラクタ。.

 特に何もしません。
 m_pcCarryUpDomainNumber を delete しませんのでご注意ください。


メンバ関数の解説

template<class type_Data>
type_Data KSCL::CDomainedNumber< type_Data >::GetData   const [inline]
 

数値を返します。.

戻り値:
今持っている値。

template<class type_Data>
void KSCL::CDomainedNumber< type_Data >::SetData type_Data    p_Data [inline]
 

数値をセットします。.

 このクラスには、別に operator+() とかがあるわけではないので、値のセットにはこのメンバ関数を使ってください。
 セット後、必要な時に Recalc を呼んでください。

引数:
p_Data  セットする値。

template<class type_Data>
type_Data KSCL::CDomainedNumber< type_Data >::Recalc   [inline]
 

値を計算してチェックします。繰り上がり方向と繰り下がり方向両方に計算していきます。.

 数値が範囲内かどうか計算して、範囲外なら範囲内に収まるようにして、繰り上がり先に繰り上がり・繰り下がりの値を 加えて Recalc() を呼び出します。

戻り値:
繰り上がり・繰り下がりの値。繰り下がりはマイナスになります。このクラスのチェーンシステムを使わない場合に使用してください。

template<class type_Data>
virtual type_Data KSCL::CDomainedNumber< type_Data >::GetCarryUp   [inline, protected, virtual]
 

・繰り上がりの値を計算します。.

 上限値を超えている場合に呼び出されます。繰り上がりの値を計算します。
 「繰り上がりの値」とは、たとえば「時」の時に 25 の値なら 1 、 49 なら 2 です。
 計算式が間違っていたら、オーバーライドして直してください。

戻り値:
繰り上がりの値。必ずプラス。

template<class type_Data>
virtual type_Data KSCL::CDomainedNumber< type_Data >::GetCarryDown   [inline, protected, virtual]
 

繰り下がりの値を計算します。.

 下限値を下回っている場合に呼び出されます。繰り下がりの値を計算します。
 「繰り上がりの値」とは、たとえば「時」の時に -1 の値なら -1 、 -25 なら -2 です。
 計算式が間違っていたら、オーバーライドして直してください。

戻り値:
繰り下がりの値。必ずマイナス。

template<class type_Data>
virtual type_Data KSCL::CDomainedNumber< type_Data >::GetRemainder type_Data    p_carryUpData [inline, protected, virtual]
 

繰り上がり・繰り下がりを除いた「余り」を計算します。.

 繰り上がり、繰り下がりの結果、残った値を計算して返します。
 「残った値」とは、たとえば「時」の時に 23 なら 23 、 26 なら 2 、 -1 なら 23 です。

戻り値:
計算結果。
引数:
p_carryUpData  繰り上がり・繰り下がりの値。

template<class type_Data>
virtual bool KSCL::CDomainedNumber< type_Data >::IsShouldCarryUp type_Data    p_Data,
type_Data    p_Max
[inline, protected, virtual]
 

繰り上がりすべきかどうか調べます。.

 上限値と現在の値を比較して、上限値を上回っているなら true を返してください。
 わざわざオーバーライドできるようにしているのは、日付の「日」のように、場合によって上限値が変わる場合をふまえてのことです。

戻り値:
true  上限値を上回っています。
false  上限値を上回っていません。
引数:
p_Data  現在の値。
p_Max  一応持っている上限値。

template<class type_Data>
virtual bool KSCL::CDomainedNumber< type_Data >::IsShouldCarryDown type_Data    p_Data,
type_Data    p_Min
[inline, protected, virtual]
 

繰り下がりすべきかどうか調べます。.

 下限値と現在の値を比較して、下限値を下回っているなら true を返してください。
 わざわざオーバーライドできるようにしているのは、場合によって下限値が変わる場合をふまえてのことです。

戻り値:
true  下限値を下回っています。
false  下限値を下回っていません。
引数:
p_Data  現在の値。
p_Min  一応持っている下限値。


メンバの解説

template<class type_Data>
type_Data KSCL::CDomainedNumber< type_Data >::m_Data [protected]
 

実際の数値を入れる変数。.

template<class type_Data>
type_Data KSCL::CDomainedNumber< type_Data >::m_Max [protected]
 

数値範囲の上限値。.

template<class type_Data>
type_Data KSCL::CDomainedNumber< type_Data >::m_Min [protected]
 

数値範囲の下限値。.

template<class type_Data>
CDomainedNumber< type_Data >* KSCL::CDomainedNumber< type_Data >::m_pcCarryUpDomainNumber [private]
 

繰り上がり先へのポインタ。.


KSCL(KAB-studioClassLibrary)に対してThu Jun 12 09:55:36 2003に生成されました。 doxygen1.2.15