6️⃣Contact

Si implementino le classi TelephoneNumber, Address, e Person che rappresentano numeri di telefono (prefisso e numero), indirizzo (tipo di indirizzo come Via, Piazza, etc., nome e numero civico) e persona (titolo, nome e cognome). Si crei a partire da queste classi la classe Contact che rappresenta una persona con relativi numeri di telefono e indirizzi, che possono essere di tipo casa e ufficio (es. il numero di telefono 555-666333 è un telefono di casa). Un Contact può avere più indirizzi e numeri di telefono sia di tipo diverso che uguale (es. due indirizzi di tipo ufficio). (2 punti ogni classe, tranne Contact che vale 4)

Risposta
#include <iostream>
#include <vector>
#include <string>

using namespace std;

class TelephoneNumber {
private:
  string prefisso;
  string numero;

public:
  TelephoneNumber(string p, string n) : 
  prefisso(p), 
  numero(n) {}
};

class Address {
private:
  string tipologia;
  string nomeVia;
  string numeroCivico;

public:
  Address(string t, string nV, string nC) : 
  tipologia(t), 
  nomeVia(nV), 
  numeroCivico(nC) {}
};

class Person {
private:
  string titolo;
  string nome;
  string cognome;

public:
  Person(string t, string n, string c) : 
  titolo(t), 
  nome(n), 
  cognome(c) {}
};

class Contact {
private:
  Person persona;
  vector<TelephoneNumber> telefoniCasa;
  vector<TelephoneNumber> telefoniUfficio;
  vector<Address> indirizziCasa;
  vector<Address> indirizziUfficio;

public:
  Contact(Person p) : persona(p) {}

  void addTelefonoCasa(TelephoneNumber tel) { 
  telefoniCasa.push_back(tel); }
  
  void addTelefonoUfficio(TelephoneNumber tel) { 
  telefoniUfficio.push_back(tel); }
  
  void addIndirizzoCasa(Address ind) { 
  indirizziCasa.push_back(ind); }
  
  void addIndirizzoUfficio(Address ind) { 
  indirizziUfficio.push_back(ind); }
};

Last updated