Le langage C++ cours et exercices

Le langage C++ cours et exercices

16.00 / 20
Publié le 20 août 2009 - Donne ton avis

Ce livre est un cours de C et de C++. Il s’adresse aux personnes qui ont déjà quelques notions de
programmation dans un langage quelconque. Les connaissances requises ne sont pas très élevées
cependant : il n’est pas nécessaire d’avoir fait de grands programmes pour lire ce document. Il suffit
d’avoir vu ce qu’est un programme et compris les grands principes de la programmation.
Ce livre est structuré en deux grandes parties, traitant chacune un des aspects du C++. La première
partie, contenant les chapitres 1 à 12, traite du langage C++ lui-même, de sa syntaxe et de ses principales
fonctionnalités. La deuxième partie quant à elle se concentre sur la bibliothèque standard C++,
qui fournit un ensemble de fonctionnalités cohérentes et réutilisables par tous les programmeurs. La
bibliothèque standard C++ a également l’avantage d’utiliser les constructions les plus avancées du
langage, et illustre donc parfaitement les notions qui auront été abordées dans la première partie. La
description de la bibliothèque standard s’étend du chapitre 13 au chapitre 18.
Si la bibliothèque standard C++ est décrite en détail, il n’en va pas de même pour les fonctions de
la bibliothèque C. Vous ne trouverez donc pas dans ce livre la description des fonctions classiques
du C, ni celle des fonctions les plus courantes de la norme POSIX. En effet, bien que présentes
sur quasiment tous les systèmes d’exploitation, ces fonctions sont spécifiques à la norme POSIX et
n’appartiennent pas au langage en soi. Seules les fonctions incontournables de la bibliothèque C seront
donc présentées ici. Si vous désirez plus de renseignements, reportez-vous aux spécifications des
appels systèmes POSIX de l’OpenGroup (http://www.unix-systems.org/single_unix_specification/),
ou à la documentation des environnements de développement et à l’aide des kits de développement
des systèmes d’exploitation (SDK).
Ce livre a pour but de présenter le langage C++ tel qu’il est décrit par la norme ISO 14882
du langage C++. Cependant, bien que cette norme ait été publiée en 1999, le texte officiel
n’est pas librement disponible. Comme je ne veux pas cautionner le fait qu’un texte de norme
international ne soit pas accessible à tous, je me suis rabattu sur le document du projet de
normalisation du langage, datant du 2 décembre 1996 et intitulé « Working Paper for Draft
Proposed International Standard for Information Systems -- Programming Language C++
(http://casteyde.christian.free.fr/cpp/cours/drafts/index.html) ».
Notez que les compilateurs qui respectent cette norme se comptent encore sur les doigts d’une main,
et que les informations et exemples donnés ici peuvent ne pas s’avérer exacts avec certains produits.
En particulier, certains exemples ne compileront pas avec les compilateurs les plus mauvais. Notez
également que certaines constructions du langage n’ont pas la même signification avec tous les compilateurs,
parce qu’elles ont été implémentées avant que la norme ne les spécifie complètement. Ces
différences peuvent conduire à du code non portable, et ont été signalées à chaque fois dans une note.
Le fait que les exemples de ce livre ne fonctionnent pas avec de tels compilateurs ne peut donc pas
être considéré comme une erreur, mais plutôt comme une non-conformité des outils utilisés, qui sera
sans doute levée dans les versions ultérieures de ces produits.
Après avoir tenté de faire une présentation rigoureuse du sujet, j’ai décidé d’arranger le plan de ce
livre dans un ordre plus pédagogique. Il est à mon avis impossible de parler d’un sujet un tant soit
peu vaste dans un ordre purement mathématique, c’est-à-dire un ordre où les notions sont introduites
une à une, à partir des notions déjà connues (chaque fonction, opérateur, etc. n’apparaît pas avant sa
définition). Un tel plan nécessiterait de couper le texte en morceaux qui ne sont plus thématiques.
J’ai donc pris la décision de présenter les choses par ordre logique, et non par ordre de nécessité
syntaxique.
Les conséquences de ce choix sont les suivantes :
• il faut admettre certaines choses, quitte à les comprendre plus tard ;
i
Avant-propos
• il faut lire deux fois ce livre. Lors de la première lecture, on voit l’essentiel, et lors de la deuxième
lecture, on comprend les détails (de toutes manières, je félicite celui qui comprend toutes les subtilités
du C++ du premier coup).
Enfin, ce livre est un document vivant. Il est librement téléchargeable sur mon site web
(http://casteyde.christian.free.fr), où la dernière version peut être récupérée. Toute remarque est donc
la bienvenue. Je tâcherai de corriger les erreurs que l’on me signalera dans la mesure du possible, et
d’apporter les modifications nécessaires si un point est obscur. Si vous prenez le temps de m’envoyer
les remarques et les erreurs que vous avez pu détecter, je vous saurais gré de vérifier au préalable
qu’elles sont toujours d’actualité dans la dernière version de ce document. À cette fin, un historique
des révisions a été inclus en première page pour permettre l’identification des différentes éditions de
ce document.
ii

Photo de profil de cyze2002
Fiche rédigée par
cyze2002
1513 téléchargements

Ce document est-il utile ?

16 / 20

Contenu de ce document de Informatique > Programmation

Plan :

Avant-propos ....................................................................................................................................... i
I. Le langage C++................................................................................................................................ i
1. Première approche du C/C++.................................................................................................. 1
1.1. Les commentaires en C++.......................................................................................... 2
1.2. Les types prédéfinis du C/C++ ................................................................................... 2
1.3. Notation des valeurs ................................................................................................... 5
1.4. La définition des variables.......................................................................................... 7
1.5. Instructions et opérations............................................................................................ 9
1.6. Les fonctions ............................................................................................................ 12
1.6.1. Définition des fonctions ............................................................................... 12
1.6.2. Appel des fonctions...................................................................................... 13
1.6.3. Déclaration des fonctions............................................................................. 13
1.6.4. Surcharge des fonctions ............................................................................... 14
1.6.5. Fonctions inline............................................................................................ 15
1.6.6. Fonctions statiques....................................................................................... 16
1.6.7. Fonctions prenant un nombre variable de paramètres ................................. 16
1.7. La fonction main....................................................................................................... 18
1.8. Les fonctions d’entrée / sortie de base ..................................................................... 19
1.8.1. Généralités sur les flux d’entrée / sortie en C .............................................. 19
1.8.2. La fonction printf ......................................................................................... 21
1.8.3. La fonction scanf.......................................................................................... 23
1.9. Exemple de programme complet.............................................................................. 24
2. Les structures de contrôle ..................................................................................................... 25
2.1. La structure conditionnelle if.................................................................................... 25
2.2. La boucle for............................................................................................................. 26
2.3. Le while .................................................................................................................... 27
2.4. Le do......................................................................................................................... 27
2.5. Le branchement conditionnel ................................................................................... 28
2.6. Le saut ...................................................................................................................... 29
2.7. Les commandes de rupture de séquence .................................................................. 29
3. Types avancés et classes de stockage .................................................................................... 31
3.1. Structures de données et types complexes................................................................ 31
3.1.1. Les structures ............................................................................................... 31
3.1.2. Les unions .................................................................................................... 33
3.1.3. Les énumérations ......................................................................................... 34
3.1.4. Les champs de bits ....................................................................................... 35
3.1.5. Initialisation des structures et des tableaux.................................................. 36
3.1.6. Les alias de types ......................................................................................... 37
3.1.7. Transtypages ................................................................................................ 38
3.2. Les classes de stockage ............................................................................................ 38
4. Les pointeurs et références.................................................................................................... 43
4.1. Notion d’adresse....................................................................................................... 43
4.2. Notion de pointeur.................................................................................................... 43
4.3. Déréférencement, indirection ................................................................................... 44
4.4. Notion de référence .................................................................................................. 46
4.5. Lien entre les pointeurs et les références.................................................................. 46
4.6. Passage de paramètres par variable ou par valeur .................................................... 47
4.6.1. Passage par valeur........................................................................................ 47
4.6.2. Passage par variable ..................................................................................... 48


100 commentaires


happihob
happihob
Posté le 12 sept. 2016

Merci

 

thierry2016
thierry2016
Posté le 9 sept. 2016

merci

 

hafida70
hafida70
Posté le 19 août 2016

merciiii

Franck6
Franck6
Posté le 3 août 2016

merci

 

Nzens
Nzens
Posté le 14 avr. 2016

trop bien, j'adorre

ngouh
ngouh
Posté le 23 mars 2016

merci

mkalla
mkalla
Posté le 21 mars 2016

Cool

laila laaroussi
laila laaroussi
Posté le 9 mars 2016

cool

lionelzeu
lionelzeu
Posté le 7 mars 2016

merci !

thiamyoussouf
thiamyoussouf
Posté le 20 févr. 2016

très cool

Md4749
Md4749
Posté le 30 janv. 2016

bien

raphael.multimédia
raphael.multimédia
Posté le 18 janv. 2016

Très bien

ali187
ali187
Posté le 7 déc. 2015

j ai besoin des exercices

ali187
ali187
Posté le 7 déc. 2015

j ai besoin des exercices en informatique

blueyvi
blueyvi
Posté le 26 nov. 2015

MERCI

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

Pierre-Margolle
Pierre-Margolle
Posté le 14 nov. 2015

merci

misaek
misaek
Posté le 14 nov. 2015

Merci

misaek
misaek
Posté le 14 nov. 2015

tres bon document, merci

antua
antua
Posté le 5 nov. 2015

Je n'arrive pas à telecharger, on me demande des jetons quésaco ??????????

Mustapha Elladi
Mustapha Elladi
Posté le 1 nov. 2015

grâce à ce contenu on peut améliorer notre niveau , Merci bcp

Mustapha Elladi
Mustapha Elladi
Posté le 1 nov. 2015

vraiment c'est un cours complet  , Merci bcp

austhb
austhb
Posté le 30 oct. 2015

un trés bon cour 

austhb
austhb
Posté le 30 oct. 2015

merci

jeme
jeme
Posté le 27 oct. 2015

MERCI

nzieanet
nzieanet
Posté le 14 oct. 2015

faci

nzieanet
nzieanet
Posté le 14 oct. 2015

cool

Gullivert
Gullivert
Posté le 22 sept. 2015

Il faudrait qu'il y ait un cours qui reprenne tout depuis le début !

Gullivert
Gullivert
Posté le 22 sept. 2015

très intéressent !

titi8401
titi8401
Posté le 19 sept. 2015

trés bien fait

Muhammad ahmad DIOUF
Muhammad ahmad DIOUF
Posté le 9 sept. 2015

TROP COOL

Muhammad ahmad DIOUF
Muhammad ahmad DIOUF
Posté le 9 sept. 2015

COOL

Mustard007
Mustard007
Posté le 17 août 2015

J'ai bien hâte de pouvoir le consulter !

assani33
assani33
Posté le 29 juin 2015

franchement c'est un bon cour et c'est assez intéressant. 

Mauritani
Mauritani
Posté le 16 juin 2015

extraordinaire

Mauritani
Mauritani
Posté le 15 juin 2015

bien

zaoui01
zaoui01
Posté le 10 juin 2015

Super

zaoui01
zaoui01
Posté le 10 juin 2015

Super

 

lindacharmante
lindacharmante
Posté le 21 mai 2015

c important 

lindacharmante
lindacharmante
Posté le 21 mai 2015

merci bcp

rachid id sekou
rachid id sekou
Posté le 26 avr. 2015

merci

ettien225
ettien225
Posté le 16 avr. 2015

merci

ettien225
ettien225
Posté le 16 avr. 2015

vraiment cool

mamkwel
mamkwel
Posté le 24 mars 2015

Merci beaucoup:)

es404
es404
Posté le 21 mars 2015

Merci

Keurty
Keurty
Posté le 13 mars 2015

Merci à toi !

 

Keurty
Keurty
Posté le 13 mars 2015

Extra !!!

nounas1
nounas1
Posté le 1 mars 2015

tres bon cours

nounas1
nounas1
Posté le 1 mars 2015

mercii bcpppp 

amir007
amir007
Posté le 24 févr. 2015

supeer doc

Marouane7
Marouane7
Posté le 20 févr. 2015

Merci bcp 

soletti
soletti
Posté le 30 déc. 2014

j'ai pas eu le temps de tout lire mais c'est genial

mamiine
mamiine
Posté le 7 déc. 2014

document très important . Merci

Ayoub StùDà
Ayoub StùDà
Posté le 4 déc. 2014

Vous êtes les meilleurs.

Ayoub StùDà
Ayoub StùDà
Posté le 4 déc. 2014

Merci encore une fois.

yassinoe
yassinoe
Posté le 16 nov. 2014

document très conçu. Merci 

jyles101
jyles101
Posté le 11 juin 2014

Merci pour ce document. Je vais certainement en bénéficier.

jrmejule
jrmejule
Posté le 24 avr. 2013

C'est vraiment très intéressent. ça m'aidera dans mes projets de fin d'étude. les livres comme celui-ci nous en avons tous besoin spécialement pour ceux ou celles qui ont fait l'informatique leur métier voir même leur vie quotidien qui ne rêvent que programme, que faire quelque chose qui peut intéresser la majorité au monde assis ou assises devant leur ordinateur qui est leur ami avec qui ils/elles passent beaucoup du temps de la journée avec voir même la 24h/24h

heinrich297
heinrich297
Posté le 16 févr. 2013

c'est vraiment un bon document ;j'ai vraiment apprris beaucoup de choses en le lisant , en generale c'est largement acceptable , alors tout mes souhaits d'amelioration et de prosperite surtout avec la nouvelle année
2013 ou je vous souhaite tous sante et bonheur

adelche
adelche
Posté le 20 janv. 2013

good
se document a mon avis peut aider n'importe qui a comprendre les base de html mais pour quelqu'un qui pratique se domaine il va trouver que se document manque certaine balise en terme de langage html, mais de toute façon il est important pour les nouveau entrant en terme d’éducation de cette langage pour création de page web

lezama
lezama
Posté le 16 janv. 2013

ce document est intéressant pour de nombreuses personnes surtout les acros de la programmation orientée objet, de plus le langage de programmation c++ est parmis les meilleurs, je vous conseille donc d'étudier le c++ si vous aimeriez aller plus loin dans le domaine de programmation

ziko 19901
ziko 19901
Posté le 26 déc. 2012

good
se document a mon avis peut aider n'importe qui a comprendre les base de html mais pour quelqu'un qui pratique se domaine il va trouver que se document manque certaine balise en terme de langage html, mais de toute façon il est important pour les nouveau entrant en terme d’éducation de cette langage pour création de page web

cardinove
cardinove
Posté le 30 oct. 2012

Découvrez la troisième édition d’un ouvrage de référence pour apprendre le C++ de façon pratique et efficace. Contrairement à l’édition précédente , cette nouvelle édition propose en introduction une série d’exercices sur la syntaxe de base du C++ (types et opérateurs, instructions de contrôle, fonctions , tableaux, pointeurs …). Tous les chapitres débutent par un rappel de cours suivi de plusieurs exercices de difficulté croissante, et les corrigés des exercices sont présentés de façon détaillée.

hakima tdib
hakima tdib
Posté le 27 févr. 2011

good :)

raw13
raw13
Posté le 17 févr. 2011

thnkx

inzaghi212
inzaghi212
Posté le 21 sept. 2010

merci bcp c'est tres interessant

kader123456789
kader123456789
Posté le 28 août 2010

cours bien intéressant

egoama
egoama
Posté le 19 juin 2010

un document très intéressant, bien structuré.

Mathieu32300
Mathieu32300
Posté le 7 juin 2010

je ne l'ai pas encore lu mais j'ai confiance en vous!!!

modoleo
modoleo
Posté le 1 juin 2010

bien

modoleo
modoleo
Posté le 1 juin 2010

bien

thiers1er
thiers1er
Posté le 30 mars 2010

yper doc

samgr
samgr
Posté le 12 févr. 2010

je ne l'ai pas encore lu mais j'ai confiance en vous!!!

dfall
dfall
Posté le 31 janv. 2010

trop super merci

dfall
dfall
Posté le 31 janv. 2010

trop super merci

SADRAOUI1
SADRAOUI1
Posté le 28 janv. 2010

Wonderful !

lalalolo
lalalolo
Posté le 25 janv. 2010

c'est tres interessant ,merci

donilamour
donilamour
Posté le 19 janv. 2010

salut et un gros merci à toi de me rendre se service

cyze2002
cyze2002
Posté le 14 janv. 2010

Merci yall, merci alalach; merci zizoun; merci mtz

cyze2002
cyze2002
Posté le 14 janv. 2010

Merci yall

yall
yall
Posté le 14 janv. 2010

c tres interessant

yall
yall
Posté le 14 janv. 2010

c tres interessant

zizoun
zizoun
Posté le 27 nov. 2009

c'est super

alkoestm
alkoestm
Posté le 19 nov. 2009

salut, le lien de telechargement n'est pas bon.
SVP dites-moi ce qu'il faut faire.

abouwa
abouwa
Posté le 15 nov. 2009

c'est génial

istainfo
istainfo
Posté le 13 nov. 2009

c'est spésial

minouchel
minouchel
Posté le 6 nov. 2009

détaillé et simple

champion09
champion09
Posté le 30 sept. 2009

IL EST PARFAIT

Il faut être inscrit pour télécharger un document

Crée un compte gratuit pour télécharger ce document

Je m'inscrisOU

J'ai déjà un compte

Je me connecte