diff --git a/TP1/CPP/Makefile b/TP1/CPP/Makefile
index 8d18471febbaa741a65975278594e89e7c1175db..80e256940064a20d3e7068e1a64464f62f0f94ca 100644
--- a/TP1/CPP/Makefile
+++ b/TP1/CPP/Makefile
@@ -1,7 +1,7 @@
 CC= g++ 
 CXXFLAGS= -Wall -ansi --pedantic -g
 
-CPP_O_FILE = arraylist.o main.o
+CPP_O_FILE = analyzer.o main.o
 
 all: $(CPP_O_FILE)
 	$(CC) $(CXXFLAGS) -o arraylist_analysis $(CPP_O_FILE)
diff --git a/TP1/CPP/analyzer.hpp b/TP1/CPP/analyzer.hpp
index 34546d877b7ab77d9f5eb1d556685dc1ded0c38d..ce14436dfe22fb11d9d380e87df23dc549ea6045 100644
--- a/TP1/CPP/analyzer.hpp
+++ b/TP1/CPP/analyzer.hpp
@@ -4,7 +4,6 @@
 #include<cmath>
 #include <vector>
 #include <iostream>
-#include <fstream>
 
 /**
    Classe utilisée pour faire des statistiques élémentaires
@@ -25,11 +24,7 @@ public:
      Complexité amortie : O(1)
      @param x est la valeur que l'on souhaite ajouter à l'analyse.
   */
-  void append(const double & x){
-    cost.push_back(x);    
-    cumulative_cost.push_back( (cumulative_cost.size()) ? cumulative_cost.back()+x : x);
-    cumulative_square += x*x;
-  }
+  void append(const double & x);
 
   /**
      Renvoie la somme des coûts enregistrés dans cette analyse.
@@ -55,23 +50,14 @@ public:
      Complexité en temps/espace, meilleur cas : O(1)
      @returns la moyenne des coûts de toutes les opérations enregistrées dans l'analyse.
   */
-  double get_average_cost(){
-    if(cumulative_cost.empty())
-      throw std::runtime_error("List is empty");
-    return cumulative_cost.back()/cumulative_cost.size();
-  }
+  double get_average_cost();
 
   /**
      Renvoie la variance des coûts de toutes les opérations enregistrées dans l'analyse.
      Complexité en temps/espace, meilleur cas : O(1)
      @returns la variance des coûts de toutes les opérations enregistrées dans l'analyse.
   */
-  double get_variance(){
-    double mean, mean_square;
-    mean = get_average_cost();
-    mean_square = mean * mean;
-    return cumulative_square - mean_square;
-  }
+  double get_variance();
 
   /**
      Renvoie l'écart-type des coûts de toutes les opérations enregistrées dans l'analyse.
@@ -87,24 +73,12 @@ public:
      Complexité en temps, meilleur/pire cas : O(size)
      @param path est le chemin du fichier dans lequel la sauvegarde est faite.
   */
-  void save_values(const std::string & path){
-    std::ofstream f;
-    size_t i;
-    f.open(path.c_str());
-    for (i = 0; i < cost.size(); ++i)
-      f<<i<<" "<<cost.at(i)<<" "<<get_amortized_cost(i)<<std::endl;
-    f.close();
-  }
-  
+  void save_values(const std::string & path);
   /**
      Affiche la liste des coûts et des coûts amortis sur la sortie standard.
      Complexité en temps, meilleur/pire cas : O(size)
   */
-  void plot_values(){
-    size_t i;
-    for (i = 0; i < cost.size(); ++i)
-      std::cout<<i<<" "<<cost.at(i)<<" "<<get_amortized_cost(i)<<std::endl;
-  }
+  void plot_values();
 
 private:
   // Coût de chaque opération. Peut représenter du temps ou une autre mesure.
diff --git a/TP1/CPP/arraylist.cpp b/TP1/CPP/arraylist.cpp
deleted file mode 100644
index 67a6a394026fdc1118b9e97ae14442a19355c0f1..0000000000000000000000000000000000000000
--- a/TP1/CPP/arraylist.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "arraylist.hpp"
-
-
-template <typename P>
-P ArrayList<P>::get(const int & pos){
-  return data[pos];
-}
-
-
diff --git a/TP1/CPP/arraylist.hpp b/TP1/CPP/arraylist.hpp
index 1ee96aa19b8b7ad19dec12fe281dcb4b44e808c4..68ad0879777528c4aff921146303dda22e5ee52e 100644
--- a/TP1/CPP/arraylist.hpp
+++ b/TP1/CPP/arraylist.hpp
@@ -62,7 +62,9 @@ public:
      @param pos est la l'indice de la case on l'utilisateur veut connaître la valeur.
      @returns la valeur située à la position donnée par l'utilisateur.
   */
-  P get(const int & pos);
+  P get(const int & pos){
+    return data[pos];
+  }
 
   /**
      Renvoie le nombre d'éléments stockés dans le tableau.