我想创建一个类,可以动态添加家庭成员以及他/她与该成员的关系。
例如:
在一个家庭中,父亲是其中一名成员,他的妻子是另一名成员,他们有孩子。但每个家庭的孩子数量不同(例如,只有一个儿子/只有一个女儿/一个儿子,一个女儿,等等)。因此,孩子的数量在运行时决定。
我有一张桌子:
我想使用该member_reference_number来显示关系。
答案 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性别归零。