#include <iostream>
#include "Y.h"

using namespace std;

extern int main_exos_10(void);

int main_exos_10(void)
{
    Y e;
    // création de b à partir de a : constructeur par recopie
    Y f(e);

    cout << e << endl;
    cout << f << endl;

    e.valAt(2) = 2014;
    cout << e << endl;

    /**
     * affichage différent avec le constructeur de copie généré automatiquement
     * et celui programmé
     *
     * dans le premier cas, e et f partagent le même tableau car le constructeur de copie
     * généré automatiquement fait de la copie superficielle membre à membre (valeur du
     * pointeur recopiée)
     * une modification du tableau de e altère le tableau de f puisque c'est le même tableau
     *
     * dans le second cas, f a son propre tableau, copie du tableau de e
     * une modification du tableau de e n'altère pas le tableau de f.
     */
    cout << f << endl;

    return 0;
}

