显示家庭成员关系的类

时间:2013-04-23 04:43:49

标签: data-structures

我想创建一个,可以动态添加家庭成员以及他/她与该成员的关系。

例如:

在一个家庭中,父亲是其中一名成员,他的妻子是另一名成员,他们有孩子。但每个家庭的孩子数量不同(例如,只有一个儿子/只有一个女儿/一个儿子,一个女儿,等等)。因此,孩子的数量在运行时决定。

我有一张桌子:

  • 会员表:将存储所有成员的详细信息,例如member_reference_number,姓名,地址,电话号码等。 member_reference_number是一个主键,用于标识数据库中的唯一成员。此表适用于任何成员(父亲,母亲,儿子,女儿等)。

我想使用该member_reference_number来显示关系。

2 个答案:

答案 0 :(得分:1)

面向对象+继承可以帮助您。我想你的意思是这个结构:

class Person
{};

class Father : public Person
{};

class Mother : public Person
{};

class Child : public Father, public Mother
{};

class Son : public Child
{};

class Daughter: public Child
{};

class Family
{
  Father father;
  Mother mother;
  std::vector<Child> children;
};

              +------------------+               
              |       Person     |               
              +------------------+               
                ^             ^                  
                |             |                  
                |             |                  
                \             \                  
 +------------------+      +------------------+  
 |     Father       |      |     Mother       |  
 +------------------+      +------------------+  
                 ^            ^                  
                 |            |                  
                 |            |                  
                 |            |                  
                 \            \                  
              +------------------+               
              |     Child        |               
              +------------------+               
                 ^           ^                   
                 |           |                   
                 |           |                   
                 \           \                   
 +------------------+      +------------------+  
 |     Son          |      |    Daughter      |  
 +------------------+      +------------------+  

答案 1 :(得分:0)

我认为你可以拥有FamilyTreeNode的树。

FamilyTreeNode(结构)可以有

- &GT;男性 - String

- &GT;女性 - String

- &GT; NumberOfChildern - int

- &GT; Children - FamilyTreeNodes数组(动态数组)。

如果有人没有结婚,那么将opp性别归零。