Post on 06-Apr-2015
description
Tradurre le relazioni UML in C++ Ing. R. Turco
Realizzazione di associazione uno a uno
Figura 1
Esempio d’uso
main(){
C1 c1;
C2 c2;
c1.add(&c2);
c2.add(&c1);
}
Class C1 {
public:
C1() {…}
add( C2 *x ):p(x) {…}
void fc1() { … p->fc2(); …}
private:
t1 ac1;
C2 *p ; // per il link
} ;
Class C2 {
public:
C2() {…}
add( C1 *y ):q(y) {…}
void fc1() { … q->fc1(); …}
private:
t2 ac2;
C1 *q ; // per il link
} ;
Realizzazione di associazione uno a molti
Figura 2
Esempio d’uso
main(){
C1 c1;
C2 q1;
C2 q2;
C2 q3;
c1.add(&q1);
c1.add(&q2);
c1.add(&q3);
q1.add(&c1);
q2.add(&c1);
q3.add(&c1);
}
Class C1 {
public:
C1() {…}
add( C2 *x ) {…} // lo inserisce in lista
remove( C2 *x ) {…} // lo rimuove
void fc1() { … }
private:
t1 ac1;
list <C2*> lista ; // il link
} ;
Class C2 {
public:
C2() {…}
add( C1 *y ):q(y) {…}
void fc1() { … }
private:
t2 ac2;
C1 *q ; // per il link a C1
} ;