我想创建一个类,它可以动态添加家庭成员以及他/她与该成员的关系。
例如:在一个家庭中,父亲是成员之一,他的妻子是另一个成员,他们有孩子。但是每个家庭的孩子数量是不同的(例如只有一个儿子/只有一个女儿/一个儿子一个女儿等等)。因此子进程的数量在运行时决定。
我有一个表:
- 成员表:存储所有成员的详细信息,如member_reference_number、姓名、地址、电话号码等。Member_reference_number是标识数据库中唯一成员的主键。此表适用于任何成员(父亲、母亲、儿子、女儿等)。
我想使用member_reference_number来显示关系
面向对象+继承可以帮助您。我想你指的是这个结构:
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 |
+------------------+ +------------------+
我认为你可以用FamilyTreeNode来做树。
其中FamilyTreeNode (structure)可以有
-> Male—String
-> Female—String
-> numberofchildren—int
-> Children - array of familytreenode(动态数组).
此处如果有人未婚,则将opp sex设置为null