// définir un objet abstrait personne qui a un nom et un prenom
objet abstrait personne 
    var protégée nom, prenom chaînes;
    
    methode constructeur(n,p)
        ceci->nom = n;
        ceci->prenom = p;
    fin methode

    methode abstraite se_connecter();
fin objet

// définir un objet utilisateur héritant de personne 
// mais avec un mail et un mot de passe
objet utilisateur étend personne 
    var protégée mail, mdp chaînes;

    methode constructeur(n,p,mail,mdp)
        parent->constructeur(n,p);
        ceci->mail = mail;
        ceci->mdp = mdp;
    fin methode;

    methode se_connecter()
        connection(ceci->mail, ceci->mdp)
    fin methode;
fin objet;

// définir un client qui est un utilisateur 
// mais avec un numero client
objet client étend utilisateur 
    var privée numero;
    methode constructeur(n,p,mail,mdp, num)
        parent->constructeur(n,p,mail,mdp);
        ceci->numero = num;
    fin methode;
fin objet;

// tous doivent pouvoir se connecter, 
// pour la connection on a à disposition la fonction externe : 
// connection(mail, motdepase)