diff --git a/presentation/intro.md b/presentation/intro.md
index cd0e893d10463b874d6d59ed2b58c30cd04802c1..49509b7a9fa1370cedb53a6356d6a07a1d764f18 100644
--- a/presentation/intro.md
+++ b/presentation/intro.md
@@ -152,10 +152,15 @@ fn main() {
     notebook.push("Les oiseaux chantent.");
 
     do_something(notebook); // ownership transféré à do_something
-    // do_something(notebook); // redo something
+    do_something(notebook); // ici notebook ne possède plus ses données
+							// => erreur de compilation!
 }
 </code></pre>
 
+. . .
+
+Le transfert de l'ownership est complètement décidé à la **compilation**.
+
 ## Ownership en pratique
 
 Ce qui se passe en mémoire:
@@ -168,6 +173,28 @@ Ce qui se passe en mémoire:
 
 **`notebook` est détruit à la fin de `do_something` et ne peut plus être réutilisé**
 
+## Ownership en pratique
+
+En C++ une sytaxe similaire a un effet complètement différent
+
+```
+void do_something(notebook: vector<string>) {
+    // Do something with the notebook
+} // la variable locale notebook est détruite et ses données aussi
+  // le notebook du main existe toujours
+
+void main() {
+    vector<string> notebook; // par défaut notebook est mutable
+
+    notebook.push_back("Il fait beau.");
+    notebook.push_back("Les oiseaux chantent.");
+
+    do_something(notebook); // le copy-constructeur de notebook 
+							// est invoqué
+    do_something(notebook); // on peut réutiliser notebook sans problème
+}
+```
+
 
 
 <!-- - `vector` et `string` sont alignés en mémoire.