UML泛化约束的实现

implementation of UML generalization constraints

我有这个代码:

#include <iostream>
#include <string>
using namespace std;

class User {
    string name;
    public:
    User(string x):name(x)
    {   }
    void print() {
        cout << "Name: " << name << endl;
    }
};

class Director : public User
{
public:
    Director(string x) : User(x)
    {}
};
class Seller : public User
{
public:
    Seller(string x) : User(x)
    {   }
};
class Admin : public User
{
public:
    Admin(string x) : User(x)
    {   }
};

int main() {

    User x("A");
    Director z("B");
    x.print();
    z.print();
}

如何使用此 class 层次结构来呈现 classes: 总监、管理员、卖家是:

-完整,不相交(我猜这是我给出的代码示例)

-不完整,不相交(会一样吗?)

-完整,重叠

-不完整,重叠

您的 class 层次结构必须由 UML 的泛化集元素表示。 Disjoint 和 incomplete 是这个元素的属性。