// // main.cpp // exocours // // Created by Valentin LEMERCIER on 19/01/2018. // Copyright © 2018 Valentin LEMERCIER. All rights reserved. // #include #include "Complexe.hpp" //Inclusion du header using namespace std; int main(){ float f=2.5; Complexe c; // appel au constructeur vide Complexe d(f,f); //appel au constructeur 2 Complexe e(d); //Appel au constructeur par recopie automatiquement créé par le compilateur Complexe g=e; //Appel au constructeur par recopie automatiquement créé par le compilateur c.Affiche(); d.Affiche(); e.Affiche(); g.Affiche(); //l'appel des fonctions se fait comme pour des structures Objet.Fonction() cout<< c.get_partie_reelle(); // affiche la partie réelle de c (c.partie_reelle si la donnée était public). d.set_partie_reelle(3); // met la partie imaginaire de d à 3 //il est possible de créer des pointeurs d'objets avec le constructeur voulu Complexe* cptr = new Complexe(f,f); //constructeur 2 //Avec un pointeur on appelle une fonction en utilisant une -> et non un . cptr -> set_partie_reelle(5); // equivalent de l'appel (*cprt).set.partie_reelle(5) cptr->Affiche(); //Tableaux d'objets: ATTENTION, dans ce cas, on fait toujours appel au constructeur vide Complexe T[10];//Il est possible de créer des tableaux de Complexe Complexe *Tf= new Complexe[10]; //Par allocation dynamique également T-> set_partie_reelle(3); T[4].set_partie_reelle(2); (Tf+3)->set_partie_reelle(2); c=d; //ici on peut faire appel à la fonction égalité sans l'avoir surchargée, car la classe ne contient pas de pointeur. Il serait très dangereux de le faire si elle en contenait e.set_partie_reelle(0); d=c+e; //appel à la fonction d'addition surchargée grâce à operator+ T->Affiche(); c.Affiche(); e.Affiche(); d.Affiche(); delete [] Tf; //désallocation return 0; }