1
Chapitre 1
Introduction
et généralités
Au sommaire de ce chapitre
L’historique du C++
La programmation procédurale et orientée objet
Les différences entre compilateur et interpréteur
Le cycle de travail
Les librairies orientées objet
Les différences entre le C et le C++
Le résumé des différents chapitres de cet ouvrage
Le
Tout en Poche C++
poursuit un double objectif : vous permet-
tre de maîtriser un des langages de programmation les plus utilisés
par la communauté des développeurs et vous fournir les connais-
sances nécessaires à l’utilisation des nombreuses librairies C++
2
C++
commercialisées. Sachez en effet que le C++ permet de développer
des programmes sur de nombreuses plates-formes, parmi lesquelles
nous pouvons citer le DOS, Windows, Unix, Linux, etc.
Cet ouvrage vous propose une approche pratique du développe-
ment d’applications C++. Chaque concept y fait l’objet d’exem-
ples de code qui vous donneront une idée précise des diverses
possibilités offertes par le langage.
Ce chapitre présente les caractéristiques fondamentales du C++
par rapport aux autres langages de programmation, en particulier par
l’étude des différences entre les langages système et les langages
évolués d’un côté, et les interpréteurs et les compilateurs de
l’autre. Vous y découvrirez également les étapes à respecter pour
générer un programme C++. Dans ce contexte, un premier pro-
gramme vous guidera pas à pas afin de vous fournir les éléments
fondamentaux du développement C++.
Cet ouvrage s’adresse à tous ceux qui veulent découvrir les possi-
bilités offertes par le C++. En conséquence, ce livre s’adresse à la
fois aux débutants et aux programmeurs C qui souhaitent maîtriser
les évolutions proposées par le C++.
Historique du C++
L’informatique — dans les distributeurs automatiques de billets,
les cartes téléphoniques, le Minitel, les micro-ordinateurs —
prend de plus en plus de place dans notre vie de tous les jours.
Pour qui les utilise, ces différents périphériques sont des interfaces
qui leur permettent de retirer de l’argent, de téléphoner, de recher-
cher une adresse ou de surfer sur l’Internet.
Ces magnifiques programmes ne représentent pourtant qu’une
suite d’impulsions ou de non-impulsions électriques qui mettent
en évidence le rôle de la base 2 (binaire) où tout élément manipulé
par l’ordinateur correspond à une suite de 1 et de 0. Les premiers
informaticiens codaient leurs programmes de cette manière. La
nécessité d’améliorer la communication entre la machine et le
développeur devint très vite évidente : les premiers langages de
programmation firent leur apparition. L’assembleur proposa ainsi
Introduction et généralités
3
d’écrire les programmes avec des commandes mnémoniques du
type
MOV ECX, EAX
. Vinrent ensuite des langages évolués comme
le BASIC ou le COBOL qui s’approchaient de plus en plus des
langues parlées (de l’anglais en l’occurrence).
Un
langage système
est un langage qui permet d’accé-
der à toutes les ressources du système (mémoires,
registres, ports, etc.) en définissant des programmes
très puissants. Ces langages présentent deux inconvé-
nients majeurs. Ils utilisent généralement une syntaxe
ésotérique qui ne facilite pas la lecture et la mise à jour
des programmes. D’autre part, leur caractère rudimen-
taire fait qu’un grand nombre d’instructions est néces-
saire pour obtenir un résultat probant.
Au contraire, un
langage évolué
utilise une syntaxe
très proche de l’anglais, ce qui facilite l’écriture et la
mise à jour des programmes. Ces langages disposent
également d’un jeu d’instructions permettant de réali-
ser des traitements très évolués. Cependant, vous
devez savoir que plus un langage est évolué, plus il est
difficile de l’utiliser dans un autre contexte que celui
pour lequel il a été défini.
Dans les années 70, un ingénieur du nom de Dennis Ritchie créa un
nouveau langage baptisé C dont la particularité était de pouvoir être
utilisé à la fois comme un langage système et comme un langage
évolué. Ce langage peut en effet être utilisé pour accéder à toutes les
ressources de la machine (y compris en insérant du code assembleur
dans un programme C), et propose en standard une kyrielle de routi-
nes (appelées fonctions) qui permettent de réaliser des opérations
évoluées. Sachez en outre que définir de nouvelles fonctions fait par-
tie intégrante du travail des développeurs C qui constituent de cette
manière de véritables boîtes à outils représentées par ces fonctions.
Depuis son apparition, le C a évolué jusqu’à ce qu’un autre ingé-
nieur, Bjarne Stroustrup, décide d’y apporter des modifications de
fond. Cette mise à jour majeure consista à apporter au langage C
les avantages de l’approche orientée objet (voir ci-dessous). A sa
sortie, à la fin des années 80, ce nouveau langage fut baptisé
C with
classes
,
puis
C++
.
4
C++
Quelle est la signification du nom C++ ? Comme vous le
découvrirez dans le Chapitre 3, l’instruction
i++
(héritée
du C) permet d’incrémenter de la valeur 1 le contenu de
la variable
i
.
Le C++ constitue donc une incrémentation, une amélio-
ration du langage C !
Le C++ est un sur-ensemble du C. A ce titre, il dispose à la fois de
l’ensemble des outils et caractéristiques du langage C et d’outils
spécifiques au C++. Comme vous le découvrirez dans la suite de
ce chapitre, ce langage est utilisé dans un grand nombre de librai-
ries dont l’objectif est de créer des applications en mode graphique
(par exemple sous Windows).
Le C++ existe sur un grand nombre de plates-formes (Windows,
Unix, etc.). Cela signifie qu’en respectant certaines contraintes,
vous pouvez définir des programmes portables sur ces différents
systèmes. La première de ces contraintes consistera à vous assurer
que vous n’utilisez pas d’outils dédiés à une seule cible. La seconde
contrainte sera de compiler votre programme pour chacun des sys-
tèmes cibles.
Une
instruction
est une opération élémentaire qui cor-
respond le plus souvent à une ligne de code dans un
programme. La déclaration et l’initialisation d’une
variable ou l’appel d’une fonction sont des exemples
d’instructions C++.
Un
fichier source
correspond au fichier texte que le déve-
loppeur écrit pour indiquer les instructions à exécuter.
Un
programme
désigne, selon les circonstances, soit le
fichier source contenant les instructions à exécuter, soit
le programme exécutable qui sera lancé.
Un
programme exécutable
(ou un
exécutable
) corres-
pond au fichier exécutable qui sera créé et lancé par le
développeur. A l’exécution d’un programme, on dit
qu’il se charge en mémoire. Ce fichier porte générale-
ment l’extension ".exe".
Introduction et généralités
5
De la programmation procédurale
à la programmation orientée objet
Les premiers langages de programmation étaient généralement
constitués d’une suite d’instructions s’exécutant de façon linéaire.
Dans ce contexte, le lancement d’un programme débutait par
l’exécution de la première instruction du fichier source et se pour-
suivait ligne après ligne jusqu’à la dernière instruction du pro-
gramme. Cette approche linéaire, bien que simple à mettre en
œuvre, a très rapidement montré ses limites. En effet, les program-
mes monolithiques de ce type ne se prêtent guère à l’écriture de
grosses applications et ne favorisent absolument pas la réutilisa-
tion du code. En conséquence sont apparus d’autres langages (tels
que le C) qui proposaient une approche radicalement différente :
l’approche procédurale.
L’approche procédurale (ou modulaire) consiste à découper un
programme en une série de
fonctions
(ou
procédures
). Ces fonc-
tions contiennent un certain nombre d’instructions qui ont pour
but de réaliser un traitement particulier. Le calcul de la circonfé-
rence d’un cercle, l’impression de la fiche de paie d’un salarié sont
des exemples de traitements qui peuvent être symbolisés par des
fonctions. Dans le cas de l’approche procédurale, un programme
correspond à l’assemblage de plusieurs fonctions qui s’appellent
entre elles.
Une
fonction
regroupe une ou plusieurs instructions
qui permettent de réaliser une tâche précise. Une fonc-
tion possède un nom qui permet de l’appeler, c’est-à-
dire d’exécuter toutes les instructions qu’elle contient.
Les fonctions favorisent la modularité des program-
mes. Grâce à elles, un problème complexe peut être
découpé en plusieurs sous-problèmes. Cela signifie
qu’un programme se compose de plusieurs fonctions
qui s’appellent entre elles. Ce mode de fonctionnement
facilite la maintenance d’un programme dans la mesure
où l’application n’est pas symbolisée par un bloc mono-
lithique, mais par un ensemble de petites unités de
code sur lesquelles il est facile d’agir.
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !