Download - Tradurre le relazioni da UML a C++

Transcript
Page 1: Tradurre le relazioni da UML a C++

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

} ;

Page 2: Tradurre le relazioni da UML a C++

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

} ;