FineKernelToolKit 4.2.13
|
木構造用ノードデータクラス [詳解]
#include <FK/Tree.h>
公開メンバ関数 | |
int | getDepth (void) |
深さ参照関数 | |
int | getMaxDepth (void) |
枝深さ参照関数 | |
fk_TreeData * | getChild (fk_TreeData *node) |
子ノード逐次参照関数 | |
fk_TreeData * | getParent (void) |
親ノード参照関数 | |
fk_TreeData * | getNext (void) |
後ノード参照関数 | |
fk_TreeData * | getPrev (void) |
前ノード参照関数 | |
int | getOrder (void) |
順位参照関数 | |
int | getChildrenSize (void) |
子ノード個数参照関数 | |
std::string | getName (void) |
名称参照関数 | |
void | setObject (const std::shared_ptr< fk_TreeBaseObject > &object) |
ユーザデータ設定関数 | |
fk_TreeBaseObject * | getObject (void) |
ユーザデータ参照関数 | |
木構造用ノードデータクラス
このクラスは、木構造を用いたデータベースにおける、 ノードデータに必要な機能を提供します。
本クラスは、FK の機能を利用するためのものではなく、 ユーザが木構造を利用する際に便利なユーティリティクラスです。 本クラスおよび fk_Tree, fk_TreeBaseObject の各クラスを用いて利用します。 本クラスの解説に使用される用語については、 fk_Tree クラスの概要を参照して下さい。
各クラスの役割ですが、 fk_Tree クラスは木構造全体のデータベースとなります。 fk_TreeData は各ノードのデータを意味します。 fk_TreeBaseObject は、 fk_TreeData に対してユーザ定義のデータを付加するための基底クラスとなります。 基本的には、ノードの生成、移動、消去といった操作は fk_Tree で、 ノード自体の設定は fk_TreeData のメンバ関数で行うことになります。
本クラスのインスタンスは、基本的にはユーザが自前で生成するものではなく、 fk_Tree の各種ノード生成関数によって自動的に生成されるものです。 唯一の例外は fk_Tree クラスの派生クラスを作成し、 そこで fk_Tree::makeNewData() を再定義する場合となります。
int FK::fk_TreeData::getDepth | ( | void | ) |
int FK::fk_TreeData::getMaxDepth | ( | void | ) |
fk_TreeData * FK::fk_TreeData::getChild | ( | fk_TreeData * | node | ) |
子ノード逐次参照関数
このノードの子ノードを逐次的に参照します。 引数に代入したノードインスタンスによる、以下のような動作を行います。
以下のコードは、子ノードを順番に参照するものです。
fk_TreeData *parent, *child; for(child = parent->getChild(nullptr); child != nullptr; child = parent->getChild(child)) { // child に子ノードが順番に入ります。 }
[in] | node | 逐次参照対象ノードインスタンス |
fk_TreeData * FK::fk_TreeData::getParent | ( | void | ) |
親ノード参照関数
このノードの親ノードインスタンスを返します。 もし根ノードにおいてこの関数を呼んだ場合は、nullptr を返します。
fk_TreeData * FK::fk_TreeData::getNext | ( | void | ) |
後ノード参照関数
このノードを構成する兄弟ノードのうち、 順位が1つ後のノードインスタンスを返します。 そのようなノードが存在しない場合は nullptr を返します。
fk_TreeData * FK::fk_TreeData::getPrev | ( | void | ) |
前ノード参照関数
このノードを構成する兄弟ノードのうち、 順位が1つ前のノードインスタンスを返します。 そのようなノードが存在しない場合は nullptr を返します。
int FK::fk_TreeData::getOrder | ( | void | ) |
int FK::fk_TreeData::getChildrenSize | ( | void | ) |
std::string FK::fk_TreeData::getName | ( | void | ) |
void FK::fk_TreeData::setObject | ( | const std::shared_ptr< fk_TreeBaseObject > & | object | ) |
ユーザデータ設定関数
ユーザ定義によるデータをノードに設定します。 ユーザ定義のデータは、 fk_TreeBaseObject クラスを派生したものを作成しておきます。 fk_TreeBaseObject クラスは、 メンバもメンバ関数も定義されていない空のクラスです。
[in] | object | ユーザ定義インスタンス |
fk_TreeBaseObject * FK::fk_TreeData::getObject | ( | void | ) |