Catégories

A Tour of C++ - Le code source de l'exemple page 2

Temps de lecture : 2 minutes

Il s'agit d'un des codes d'exemple du livre écrit par Bjarne Stroustrup et qui est disponible ici. Le contenu de ce livre correspond au début du livre The C++ Programming Language qu'on trouve ici.

Pour chaque exemple, j'ai essayé de faire en sorte que le code se compile, soit complètement autonome et tienne dans un seul source.
J'ai aussi tenté d'avoir des sorties à l'écran afin qu'on se rende compte un peu mieux de se qui se passe vraiment.
Oui, oui bien sûr, y a des cas où il faut aller vérifier avec un débogueur.
En tout cas l'objectif est de pouvoir avoir un code fonctionnel qu'on puisse compiler et dans lequel on puisse naviguer.
J'ai tenté de coller au maximum à l'exemple du bouquin. A part peut être un ou deux cas, j'ai dû renommer certains variables.

J'ai surtout travaillé avec Visual Studio Community 2013.
Ceci dit les exemples tournent dans Ideone.com ou la version en ligne du compilateur C++ de Microsoft.
Dans certains, j'ai été amené à aller y faire des tests.
Dans certains cas j'ai aussi fait aussi des tests avec le compilateur clang de mon Mac.
Pour utiliser le code, il suffit de faire un copier coller et zou c'est parti.
Pour les explications, bien sûr vaut mieux se référer aux livres de l'auteur.

Notes spécifiques à cet exemple

Afin de faire ressortir le code et éviter d'avoir des sources trop long, les commentaires commencent à la colonne 81 de chaque ligne. Il ne faut donc pas hésiter à mettre cette page web en plein écran et/ou à aller voir sur la droite du code source.

La toute première ligne est un exemple qui permet de compiler le code en ligne de commande avec le compilateur C++ de Visual Studio.  Bien sûr il faut être dans une console de type Developer Command Prompt for VS2013 (Démarrer/Visual Studio 2013/Visual Studio Tools/Developer Command Prompt for VS2013)

Le "#include <limits>" est nécessaire à cause des 2 dernières lignes de code.
Les lignes commentées à la toute fin du code obligent l'application à attendre que l'on tape sur ENTER avant de se terminer.
Cela peut être utile si vous lancez l'application en double cliquant sur le nom de l'exécutable ou si vous lancez l'application depuis Visual Studio (F5). En mode Debug, au sein de l'environnement de développement ces 2 lignes ne sont pas nécessaires.

On note qu'il n'y a pas de paramètre à la fonction main(). C'est possible mais pas obligatoire. Il n'y a pas non plus de valeur retournée par la fonction main(). Typiquement y a pas le fameux "return 0;". Si nécessaire, le compilateur le rajoute pour vous. Pour plus de détail voir : http://en.cppreference.com/w/cpp/language/main_function

Hello world semble être une figure imposée et généralement on y prête pas beaucoup d'attention. N'hésitez pas à lire (relire) cet article : http://www.stroustrup.com/new_learning.pdf

Le code source

1
2
3
4
5
6
7
8
9
10
11
12
13
                                                                                // On Windows : cl /EHsc /nologo /W4 /MT /O2 /GL p002.cpp
                                                                                // On Mac     : clang++ -Wall -std=c++0x -stdlib=libc++ exemple149bis.cpp -o exemple149bis
#include <iostream>                                                             // includes ("import") the declarations for the I/O stream library
#include <limits>
// ----------------------------------------------------------------------------
int main(){
  std::cout << "Hello, World!\n";
  
  // Uncomment the 2 lines below if needed
  // std::cout << "Press ENTER to quit : ";
  // std::cin.ignore((std::numeric_limits<std::streamsize>::max)(), '\n');
}

Comments are closed.