自己参照構造体と自己参照クラス

自己参照構造体と自己参照クラスです。
これらは共に、自分自身のポインタを構造体、もしくはクラス内に保持している物です。
これを使う事で構造体、もしくはクラスに簡単に階層構造を作る事ができます。

例えば、

struct test{
 test *p;
}tes;

という構造体があった場合、

tes.p->p->p->p->p…

と、どこまでも辿ることができます。
但し、データにアクセスするにはnew等でメモリが確保されていなければなりません。

以下は簡単な例です。

#include <stdio.h>

struct test{
 int i;
 test *p;
}tes;

void main()
{
 tes.p=new test(tes);
 tes.p->p=new test(tes);
 tes.i=1;
 tes.p->i=2;
 tes.p->p->i=3;
 printf("%d,%d,%d\n",tes.i,tes.p->i,tes.p->p->i);
 getchar();
}

 

最終更新:2011年05月23日 00:10
添付ファイル