Quelle est la meilleure façon de représenter une association d'objet un-à-un en C++? Cela devrait être aussi automatique et transparent que possible, c'est-à-dire que lorsqu'une extrémité est définie ou réinitialisée, l'autre extrémité sera mise à jour. Probablement une interface de pointeur comme idéal serait:association un à un
template<typename AssociatedType>
class OneToOne{
void Associate(AssociatedType &);
AssociatedType &operator*();
AssociatedType *operator->();
}
Y at-il une meilleure façon de le faire ou est-il une mise en œuvre complète?
EDIT:
Comportement souhaité:
struct A{
void Associate(struct B &);
B &GetAssociated();
};
struct B{
void Associate(A &);
A &GetAssociated();
};
A a, a2;
B b;
a.Associate(b);
// now b.GetAssociated() should return reference to a
b.Associate(a2);
// now b.GetAssociated() should return reference to a2 and
// a2.GetAssociated() should return reference to b
// a.GetAssociated() should signal an error
Les associations un à un sont un type de connexion très large entre les types, les objets, etc. Si vous nous dites précisément quel est votre objectif, nous pouvons vous donner une meilleure idée de ce que vous devriez faire. –
J'ai besoin d'un objet pour pointer vers le second et le second pour pointer vers le premier. Puis par exemple quand je change l'objet pointé dans le premier objet en un troisième objet, les associations des deuxième et troisième objets seront mises à jour automatiquement. –