Programmation en C++ Fonctions

Slides:



Advertisements
Présentations similaires
Les fonctions A quoi ça sert ?
Advertisements

Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Structures de données IFT-2000
1 Fonction : surcharge de sélection La surcharge de sélection consiste à implanter plusieurs méthodes de même nom dans une même classe à condition que.
C++ : fonctions et opérateurs
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
Les opérateurs L’amitié Les opérateurs Introduction
Les surcharges d'opérateurs
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
1 Après 3 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
1 Programmation en C++ IO en C++/SL. 2 Sortie à l’écran Exemple: #include int main () { std::cout
1/1/ Synthèse TD 3 Classe et adresse IP Bertrand Chesneau Morgan Nouet.
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
Utilisation des squelettes Association Rhizomes – 11 août 2006.
BUR Tableur Tableur : Open Office Calc. BUR Tableur 2 Qu’est-ce qu’un tableur ?  Un logiciel permettant de manipuler des feuilles de calcul  Fonctionnalités.
SQL partie 5 1 LMD create – update – primary key secondary key.
CINI – Li115 1 Semaine 10 Les pointeurs ● Notion d'adresse ● Déclaration et utilisation de pointeurs ● "Types pointeur" et initialisation des pointeurs.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.
1 Bonnes Pratiques ● Indentation ● Présentation ● Initialisation des variables ● Conditions ● Gestion d'erreurs ● Conventions.
Tableaux en C Mardi 2/05.
Après 3 séances Tous les binômes ont commencé l'exercice « Formes »
Programmation en C++ Standard Library
Module de gestion des tournées de livraison
java : l'héritage (rappel)
Programmation en C++ Héritage
Construire des requêtes
Pas de variable globale
Les notions de classe et d'objet
JavaScript.
Programmation en C++ IO en C++/SL
AO (Architecture des ordinateurs)
Principes de programmation (suite)
Algorithmique Langage C
11ième Classe (Mardi, 18 novembre) CSI2572
Les objectifs du cours Savoir utiliser un Tableur
Langages de programmation TP7
Semaine 11 Les pointeurs (suite)
Les fonctions.
Les fonctions.
Les bases de données et le modèle relationnel
Programmation en C++ Fonctions
Présentation multimédia avec open office
SIF-1053 Architecture de ordinateurs
C. Loomis (LAL-Orsay) Tutorial EGEE Utilisateur (LAL) 2 février 2007
Programmation en C++ IO en C++/SL
6. Les types utilisateurs et les structures de données
Programmation en C++ Classes
Les flux en C++ Les flux d’entrées sorties Les flux standards.
Programmation en C++ C++ de base
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Calcul Scientifique Initiation à SCILB
Message Oriented Middleware MOM - Beghdad abdelkrim -abass youcef.
Les classes et les objets
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
Principes de programmation (suite)
© Robert Godin. Tous droits réservés.
Variables et accès en Java
Retour sur les interfaces
1. 2 TABLEUR: Calc mars 19 Myriam Boullanger - Bureautique - Calc Suite Gratuite Libre Office Dans le navigateur (Internet Explorer, Google Chrome, FireFox,…),
Analyse et programmation langage ADA
© Robert Godin. Tous droits réservés.
Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Transcription de la présentation:

Programmation en C++ Fonctions Déclaration et définition de fonctions Arguments Surcharge Arguments optionnels Fonctions constantes Fonctions opérateurs

Fonction Déclaration = spécification de l'identificateur et du type de fonction Une promesse (un contrat) que la fonction doit tenir (remplir) Définition = implantation La spécification qui remplit le contrat Point.cxx float Point::Distance(Point point) { /// Calculer la distance du point donné float x_diff = m_x – point.m_x; float y_diff = m_y – point.m_y; return sqrt(x_diff*x_diff + (x_diff*x_diff); } Identificateur de fonction (nom) Point.h float Distance(Point point); Type de retour + Argument = Type de fonction

Arguments ... Le passage des arguments peut s'effectuer de plusieurs façons: Par valeur L'objet « point » passé dans la fonction est copié localement dans un nouvel objet qui est utilisé par la fonction L'objet d'origine ne peut pas être modifié par la fonction Appropriée que pour des objets de types simple (primitifs) car la procédure de copier l'objet peut être coûteuse (en temps) Par référence constante Le même objet « point » dont la référence est passée dans la fonction est utilisé par la fonction La déclaration const nous garantit que l'objet ne peut pas être modifié par la fonction Évite la nécessité de copier l'objet, elle est alors appropriée pour les objets de types complexes (classe) float Distance(Point point); float Distance(const Point& point);

... Arguments Si la fonction est destinée à modifier l'objet: Par référence Le même objet « point » dont la référence est passée dans la fonction est utilisé par la fonction; il peut alors être modifié Par adresse (pointeur) Le même objet « point » dont le pointeur est passé dans la fonction est utilisé par la fonction; il peut alors être modifié float Distance(Point& point); float Distance(Point* point);

Surcharge de sélection Plusieurs fonctions avec le même nom peuvent coexister à condition que la liste des arguments diffère: Les fonctions ne peuvent pas différer seulement par le type de retour Utilisation La sélection de fonction est faite par le compilateur class Point { float Distance(Point point); // Distance a partir d'un point float Distance(Line line); // Distance a partir d'une ligne float Distance(Point p1, Point p2); // Distance a partir d'une ligne // définie par deux points p1, p2 double Distance(Line line); // Distance a partir dune ligne } Point point(3,4); Point center(0,0); Line line; std::cout << point.Distance(center) << std::endl; std::cout << point.Distance(line) << std::endl;

Arguments optionnels ... Il est possible de donner à un argument sa valeur par défaut: Les arguments par défaut ne peuvent pas introduire d'ambiguïté – le constructeur par défaut (sans arguments) est déclaré déjà avec le constructeur par deux floats Utilisation class Point { Point( float x = 0, float y = 0 ); Point(); float Distance( Point point = Point(0, 0) ); } Point point(3,4); std::cout << point.Distance() << std::endl; Point center; std::cout << point.Distance(center) << std::endl;

... Arguments optionnels Les arguments avec des valeurs par défaut doivent toujours se trouver à droite des arguments sans valeur par défaut class Point { Point( float x = 0, float y = 0 ); Point( float x, float y = 0 ); Point( float x = 0, float y ); }

Fonctions constantes La déclaration const de la fonction membre de la classe nous garantit que la fonction ne change pas les données membres de la classe Les fonctions qui ne doivent pas changer l'état de la classe: Les fonctions pour accéder à l'état de l'objet Pour les autres c'est à décider par le programmeur class Point { public: // Fonctions pour construire l'objet Point(); Point(float x, float y); // Fonctions pour manipuler l'objet float Distance(const Point& point) const; // Fonctions pour accéder à l'état de l'objet float GetX() const; float GetY() const; private: // Données membres float m_x; float m_y; }; Notre définition de la classe Point après l'application de const où c'est approprié

Fonctions Opérateurs On peut regarder l'opérateur comme un raccourci pour un appel de fonction: c = a + b; parait plus clair que c = Add(a,b); En C++, les opérateurs sont spécifiés (déclarés) et implantés (définis) comme fonctions, mais utilisés comme opérateurs Déclaration: Utilisation: Définition: En C++, le programmeur peut redéfinir la plupart des opérateurs, mais pas tous (ex. opérateur ., :: ) Point operator + (const Point& p1, const Point& p2); Point operator + (const Point& p1, const Point& p2) { return Point ( p1.GetX() + p2.GetX(), p1.GetY() + p2.GetY() ); } Point p1(3,4); Point p2(1,5); Point p3 = p1 + p2; std::cout << p3 << std::endl; Type de fonction

Opérateurs I/O Les opérateurs <<, >> permettent d'envoyer un objet dans un flot d'entrée ou de sortie Déclaration: Déclarer l'opérateur friend permet d'accéder aux données membres privées Implémentation: Utilisation: class Point { friend std::ostream& operator << (std::ostream& s, const Point& point); }; std::ostream& operator << (std::ostream& s, const Point& point) { s << "Point: " << point.m_x << “, “ << point.m_y; return (s); } Point p5(10, 15); std::cout << p5 << std::endl;