EPFL
Faculté Informatique & Communications
Cours d'informatique

Mini-Référence :
Premiers Pas en C++

Commandes de compilation

Notions élémentaires

La compilation se fait avec gcc, le compilateur GNU multi-langages (C, C++, Objective-C, Ada, Fortran et même Java). Comme nous compilerons du C++, la commande invoquée sera c++ ou g++ (gcc compile du code C par défaut) :
c++ programme.cc -o executable
(remplacer programme.cc par le nom du fichier texte contenant le code source du programme C++, et executable par le nom du fichier exécutable que vous souhaitez créer).

La commande de compilation peut être effectuée depuis un Terminal. Elle peut aussi être effectuée sous Emacs (cf série 3), ainsi que depuis de nombreux autres éditeurs prévus pour cela (comme par exemple nedit).

Compilation simultanée de plusieurs fichiers

Un programme peut être écrit en plusieurs parties, dans plusieurs fichiers différents. Lorsque c'est le cas, il faut donner la liste des fichiers au compilateur. Par exemple, si un programme est écrit sur deux fichiers (fichier1.cc et fichier2.cc), la commande de compilation sera :
c++ fichier1.cc fichier2.cc -o executable

Compiler en respectant [strictement] la norme

Pour assurer un code portable (c.-à-d. compilable dans d'autres environnements) et de bonne qualité, les options -ansi, -Wall et -pedantic pourrons également être utilisées :
c++ -Wall programme.cc -o executable
c++ -ansi programme.cc -o executable
et pour les purs et durs
c++ -pedantic -ansi -Wall programme.cc -o executable
Les conséquences de ces options sur le compilateur sont :
-Wall
(qui signifie «all Warnings») provoque l'affichage par le compilateur de tous les messages d'alertes. Ceci peut être très utile pour trouver certaines fautes, et éviter des inattentions conduisant à un programme qui compile, mais dont le comportement n'est pas celui désiré.

-ansi
supprime tout les dialectes C++ en conflit avec la norme (norme ISO ANSI), et garantit donc un code portable.

-pedantic
(à utiliser en plus de -ansi) est encore plus rigide et rejette systématiquement tout code ne respectant pas strictement la norme ISO.


Formes des commentaires dans un programme C++

// Commentaire orienté ligne (délimité à gauche, sur une ligne)

/*
    Commentaire orienté bloc
    (délimité à gauche et à droite, sur plusieurs lignes)
*/

Exemple :

int i(0); // une variable entiere initialisee a 0

/* et ici un commentaire pour la partie qui suit :
   c'est bidon, juste pour l'exemple */
i = i + 3 ;

Types et valeurs littérales

Le principaux types élémentaires en C++ sont :
int
double
char
bool
  : entiers
: virgule flottante (approxime les réels)
: caractères
: booléens (vrai ou faux)
Exemples de valeurs littérales :
int
double
char
bool
  a=1, b=20118, c=-2118;
a=2.432, b=1.2E3; (1.2E3 signifie 1.2 * 1000)
a='A', b='R';
a=true, b=false;

Déclaration et initialisation de variables et de constantes

Avant d'utiliser une variable (en lui affectant une valeur) ou une constante (en lisant sa valeur) il faut toujours les déclarer.

Syntaxe de la déclaration

Pour déclarer une variable, on utilise la syntaxe suivante:
Syntaxe :  «type» «identificateur»;

Exemples :

int val;
char c;
double x;
  déclare la variable val, de type entier (int)
déclare la variable c, de type «caractère» (char)
déclare la variable x, de type flottant (double)

Remarque :

Une déclaration se termine obligatoirement par un point-virgule (« ; »).

Déclaration et initialisation simultanées

On peut profiter de la déclaration pour initialiser la variable déclarée, c'est-à-dire lui assigner une valeur initiale, et ceci au moyen de la syntaxe suivante :
Syntaxe :  «type»  «identificateur de variable»  («valeur d'initialisation»);

Exemple :

int val(4);
char c('a');
int val2(4*5-2);

Déclarations de constantes

Lorsque l'on cherche à intégrer une information dans un programme, on a intérêt à se demander s'il s'agit d'une grandeur modifiable ou non.
Par exemple, le nombre PI est typiquement une grandeur constante, et il est très avantageux de le signaler au compilateur, en modélisant cette grandeur au moyen d'une constante plutôt qu'une variable.

La déclaration d'une constante implique son initialisation (i.e. il faut obligatoirement spécifier, au moment de la déclaration, la valeur de la constante):
Syntaxe :  const  «type»  «identificateur de constante»  («valeur»);

Exemple

const double pi(3.1415926535);
Pour la donnée pi, l'affectation (i.e. la modification, voir ci-après) est alors impossible, car rendue interdite par le compilateur (qui signale une erreur).

Affectations

En C++, une affectation a la forme : variable = expression ;
Par exemple :

	x = 3*y+2;

Notez bien la présence obligatoire du point-virgule (;) à la fin d'une instruction d'affectation.

(Niveau Avancé)   Note : une affectation est une expression dont le résultat est la valeur affectée.
Ainsi :  x = 2 + (y = 3);
affecte 3 à y, et le résultat de cette affectation (3), additionné à 2, est affecté à x. x vaudra donc 5 après l'exécution de cette instruction.

Pour des questions de lisibilité, il est recommandé de ne pas utiliser ce genre de possibilités !

Dernière mise à jour : $Date: 2009-09-11 17:10:52 +0200 (Fri, 11 Sep 2009) $   ($Revision: 25 $)