Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Officiels > Programmation > Apprenez à programmer en C++ ! > [Théorie] La Programmation Orientée Objet > Introduction au C++ > Lecture du tutoriel

Introduction au C++

Avatar
Auteur : M@teo21
Note : 18 / 20 (20 votes)
Visualisations : 146 611


Plus d'informations Plus d'informations
Le C++, enfin on y arrive ! :D

J'espère que vous êtes encore en forme, car vous avez des tonnes de choses à apprendre (et pas des plus faciles :p ). Mais courage, si vous êtes arrivés là, vous serez capable de réussir à comprendre la suite ça ne fait aucun doute ;)

Le C++ ressemble au C en apparence, mais vous allez vite vous rendre compte qu'il est en fait bien différent.

Ce chapitre servira d'introduction. Nous allons commencer par voir ce qui différencie le C du C++ et quels sont les défauts du C qui ont conduit à la réalisation du C++.

Rappel IMPORTANT pour ceux qui n'auraient pas lu l'avertissement sur le sommaire : ce cours est la suite du cours de C. Vous devez avoir lu au moins les parties I et II du cours de C avant de vous attaquer à la lecture de ce cours sur le C++, sinon vous n'allez rien comprendre !
Sommaire du chapitre :
Icône du chapitre
Sommaire Chapitre suivant

Pourquoi avoir créé le C++ ?

Je vous l'ai dit dès le tout début du premier chapitre du cours, et je ne vous ai pas menti : le langage C n'est pas limité. Vous pouvez faire tout ce que vous voulez avec, des fenêtres (avec GTK+ par exemple), de la 2D (avec SDL), de la 3D (avec OpenGL)... Le tout est de trouver la librairie qui propose ce dont vous avez besoin.

Alors du coup on peut se demander... pourquoi un gars s'est levé un jour et a dit : "Aujourd'hui je vais inventer un nouveau langage" ?
Le type en question s'appelle Bjarne Stroustrup, il est danois et il est l'auteur d'un des langages de programmation les plus utilisés dans le monde aujourd'hui. Et il n'est pas fou : il n'a pas fait ça pour le plaisir (enfin j'espère) !


Le C a des avantages



Maintenant que vous programmez en C, vous avez pu vous rendre compte certainement que celui-ci a un grand nombre d'avantages :



Bref, autant de raisons valables d'aimer le C ^^


Mais le C a aussi des défauts !



Si le C n'avait que des avantages, ce serait le langage parfait. Or, les programmeurs savent très bien que le langage parfait n'existe pas. Tout langage a des défauts.

Donc le C n'est pas parfait. Que lui reproche-t-on ?
Déjà, certains concepts de programmation plus récents manquent :



Mais le vrai problème du langage C est qu'il n'est pas prévu pour faire de la Programmation Orientée Objet, une technique de programmation particulièrement efficace apparue récemment.

La programmation orientée quoi ?

Non, ce n'est pas une insulte.
Bon d'accord, il faut avouer que quand quelqu'un nous dit : "Je fais de la programmation orientée objet", on a tendance à s'éloigner un peu de peur que ça soit contagieux :-°


Beaucoup de gens parlent ou ont entendu parler de Programmation Orientée Objet (que j'abrègerai maintenant tout le temps POO, ça va plus vite :p ). Mais concrètement, la POO c'est quoi ?

La POO est un concept de programmation, une façon de programmer. Ce n'est pas un langage.
Le C++, lui, est un langage. Il a été principalement inventé pour faciliter l'utilisation de la POO.

La POO n'est pas utilisée qu'en C++. De nombreux langages, encore plus récents, exploitent au maximum les concepts de la POO. Je pense en particulier à Java et Python, mais il y en a bien d'autres.
Par ailleurs, il est possible de faire de la POO en C, mais c'est assez compliqué.


Bon, à quoi ça sert la POO ?



C'est une façon de programmer qui permet de rendre un code source plus facilement réutilisable, plus facile à modifier.

Comment ça ? Les programmes écrits en C sont difficiles à modifier ?


Ah non, je n'ai pas dit ça :p
Simplement, quand le programme devient gros, il faut avouer qu'on finit assez facilement par se perdre dans toutes les fonctions qu'on a créées. La POO nous permet de mieux organiser notre code source, de lui donner une certaine logique. Les avantages de cette meilleure organisation sont nombreux, vous les découvrirez progressivement.

En fait, c'est un peu comme les pointeurs : vous n'en avez pas forcément compris l'intérêt tout de suite, mais je suis sûr que maintenant vous ne pouvez plus vous en passer ! ;)


L'idée à la base de la POO



En C, vos programmes ne sont au final qu'un ensemble de fonctions accessibles de partout qui manipulent des tonnes de pointeurs. Même si vous pouvez faire plusieurs fichiers, cela ne suffit pas toujours à organiser correctement votre programme.

Par exemple, vous ne pouvez pas avoir deux fonctions nommées ajouter dans votre programme. Même si ces fonctions sont dans deux fichiers différents !
Ainsi, si vous avez une fonction ajouter permettant d'ajouter des heures et ailleurs une autre fonction ajouter permettant d'ajouter des euros, le langage C sera perdu et vous dira qu'il ne sait pas quelle fonction appeler quand vous demandez la fonction ajouter.

Imaginez que toutes les fonctions d'un programme en C nagent dans une seule et même grande piscine. C'est ce qu'on appelle l'espace global. Les fonctions évoluent toutes dans un même espace.

Espace global en C



Imaginez maintenant si on séparait ces fonctions. On place la fonction ajouter spécialisée dans les heures dans une piscine, et on place la fonction ajouter spécialisée dans les euros dans une autre piscine. Du coup, vous n'avez plus qu'à vous rendre devant la piscine qui vous intéresse (par exemple la piscine spécialisée dans les heures) et vous pouvez alors appeler la fonction ajouter. Il n'y a pas de risque de conflit cette fois, parce que les fonctions sont confinées dans des espaces différents ! On ne les mélange plus ;)

Objets en C++
En C++, les fonctions sont compartimentées dans des espaces différents


Dans le schéma ci-dessus, j'ai créé 2 espaces pour séparer les fonctions ajouter. J'ai nommé ces espaces pour les identifier. On a maintenant :



Vous noterez que les autres fonctions comme main nagent encore dans l'espace global. Il est en effet toujours possible de mettre des fonctions dans l'espace global en C++.
D'autres langages interdisent carrément ce genre de choses (je pense à Java par exemple). Java est un langage complètement orienté objet : toutes les fonctions sont obligatoirement confinées dans des espaces particuliers et non dans l'espace global. Le C++ autorise encore de mettre des fonctions dans l'espace global, et c'est d'ailleurs en partie ce que certains lui reprochent (je vous rappelle que le langage parfait n'existe pas :p ).


Allons un peu plus loin



Est-ce qu'on ne peut mettre qu'une seule fonction par espace ?

Non, bien sûr ! Le but, c'est de regrouper les fonctions de notre programme par "thème".

Prenons par exemple le thème Temps.
On peut ajouter des heures, mais on pourrait aussi créer la fonction qui retire des heures, une autre qui donne l'heure actuelle, etc.

De même pour le thème Argent. Disons que ça c'est l'argent que vous avez.
Vous pouvez aussi retirer de l'argent, créer la fonction qui vous donne la quantité d'argent que vous avez sur votre compte en banque, etc.

Ajoutons ces fonctions dans notre schéma :

Objets en C++
Regroupez vos fonctions par thème !


Vous noterez qu'il y a 2 fonctions retirer : là encore ça ne pose pas de problème car elles sont dans 2 espaces différents.


Eh bien, croyez-moi si vous voulez, mais si vous avez compris ce que je viens d'expliquer à l'instant, vous avez déjà une bonne petite idée de ce qu'est la programmation orientée objet !

Maintenant je vous rassure : ça c'est vraiment la base de la base. La POO implique pas mal de règles, et l'organisation est parfois un peu déroutante. On va parler de POO dans pratiquement toute cette partie du cours, vous aurez donc le temps de vous rendre compte à quel point le sujet est riche ^^

Q.C.M.

Le C++ a été inventé parce que le C n'était pas assez portable...
Que signifie POO ?
Par qui a été inventé le C++ ?
Quel est un des principaux avantages de la POO ?

Statistiques de réponses au QCM


Comme la POO est un vaaaaste sujet, nous n'allons pas l'aborder immédiatement (je veux pas vous tuer de suite :p ).
Comme je vous l'ai dit au début, il y a de nombreuses différences entre le C et le C++. La plus importante d'entre elles est l'introduction de la POO, mais ce n'est pas la seule. Il y a aussi une foule de petites nouveautés pas bien compliquées à comprendre.

Voilà ce qu'on va faire :

  1. Dans un premier temps nous allons découvrir toutes ces petites nouveautés qui n'ont aucun rapport avec la POO (ça prendra environ 3 chapitres).
  2. Ensuite nous attaquerons la POO et je vous en ferai manger jusqu'à la fin de cette partie du cours :D

On attaque notre premier programme C++ dès le chapitre suivant. Nous y découvrirons la notion de flux d'entrée / sortie. Une sorte de... mise en bouche quoi :p
Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 18/09/2007 à 17:13:58
Modifié : le 23/10/2008 à 14:17:50
Avancement : 100%
Licence : Copie non autorisée

27 commentaires

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 111 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.1252s (0.1117s)