Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
doc [2015/07/19 21:13] 77.148.2.219 [Savoir lire une page de documentation] |
doc [2016/07/05 18:52] (Version actuelle) gbdivers |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
^ [[histoire|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[calculs_arithmetiques|Chapitre suivant]] ^ | ^ [[histoire|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[calculs_arithmetiques|Chapitre suivant]] ^ | ||
- | ====== Explorer la documentation ====== | + | ====== [Aller plus loin] Explorer la documentation ====== |
Le langage C++ et la bibliothèque standard sont extrêmement riches, il est difficile (et inutile) d'apprendre toutes les subtilités et détails dès le début. Cela viendra avec l'expérience. Par contre, il est important pour votre apprentissage d'acquérir une certaine autonomie, en particulier pour trouver les informations dont vous aurez besoin. Ce cours vous donnera les éléments de compréhension indispensables, mais c'est dans votre intérêt de ne pas hésiter à faire vos propres recherches et lire des sources complémentaires. | Le langage C++ et la bibliothèque standard sont extrêmement riches, il est difficile (et inutile) d'apprendre toutes les subtilités et détails dès le début. Cela viendra avec l'expérience. Par contre, il est important pour votre apprentissage d'acquérir une certaine autonomie, en particulier pour trouver les informations dont vous aurez besoin. Ce cours vous donnera les éléments de compréhension indispensables, mais c'est dans votre intérêt de ne pas hésiter à faire vos propres recherches et lire des sources complémentaires. | ||
Ligne 10: | Ligne 10: | ||
===== Le site cppreference.com ===== | ===== Le site cppreference.com ===== | ||
- | La référence officielle du C++ est le document publié par l'organisme international de normalisation (ISO). Ce document est assez austère à lire (plus de 1300 pages), il est avant tout destiné à ceux qui implémentent les compilateurs. Il est payant, mais vous pouvez consulter le document de travail du comité C++, qui contient également les propositions pour le futur standard ([[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf|Working Draft, Standard for Programming Language C++]]. | + | La référence officielle du C++ est le document publié par l'organisme international de normalisation (ISO). Ce document est assez austère à lire (plus de 1300 pages), il est avant tout destiné à ceux qui implémentent les compilateurs. Il est payant, mais vous pouvez consulter le document de travail du comité C++, qui contient également les propositions pour le futur standard ([[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf|Working Draft, Standard for Programming Language C++]]). |
En pratique, vous n'allez donc pas utiliser ce document. Il existe différents sites internet qui présentent les spécifications du C++, de façon plus abordable. Dans ce cours, nous allons utiliser le site [cppreference.com]. Ce n'est pas la documentation officielle à proprement parler, mais c'est l'une des plus à jour et complète. | En pratique, vous n'allez donc pas utiliser ce document. Il existe différents sites internet qui présentent les spécifications du C++, de façon plus abordable. Dans ce cours, nous allons utiliser le site [cppreference.com]. Ce n'est pas la documentation officielle à proprement parler, mais c'est l'une des plus à jour et complète. | ||
- | La page principale est divisée en deux partie. En haut, la documentation du C++, et celle du C en dessous. Nous allons bien sûr utiliser celle concernant le C++. | + | La page principale est divisée en deux parties. En haut, la documentation du C++, et celle du C en dessous. Nous allons bien sûr utiliser celle concernant le C++. |
* screenshot page principale | * screenshot page principale | ||
- | La documentation du C++ se décompose en plusieurs parties. En pratique, on peut distinguer trois parties : le langage proprement dit (http://en.cppreference.com/w/cpp/language), les fichiers d'en-tête (http://en.cppreference.com/w/cpp/header) et la bibliothèque standard (tous les autres parties en fait). | + | La documentation du C++ se décompose en plusieurs parties. En pratique, on peut distinguer trois parties : le langage proprement dit (http://en.cppreference.com/w/cpp/language), les fichiers d'en-tête (http://en.cppreference.com/w/cpp/header) et la bibliothèque standard (toutes les autres parties en fait). |
===== Faire une recherche dans la documentation ===== | ===== Faire une recherche dans la documentation ===== | ||
- | Vous allez utiliser la documentation dans deux situations. Soit vous recherchez les détails techniques d'une fonctionnalités du C++ à partir d'un mot-clé, soit vous recherchez quels outils du C++ permettent de réaliser une idée que vous avez en tête. | + | Vous allez utiliser la documentation dans deux situations. Soit vous recherchez les détails techniques d'une fonctionnalité du C++ à partir d'un mot-clé, soit vous recherchez quels outils du C++ permettent de réaliser une idée que vous avez en tête. |
- | Partir d'un mot-clé est beaucoup plus simple. Il suffit de rechercher dans un moteur de cherche ce mot clé (par exemple en tapant "C++11 mot-clé") pour trouver des références sur le sujet (évitez de rechercher dans un premier temps "C++ mot-clé", il existe beaucoup de références obsolètes sur internet. Ne faites cela que dans un second temps, lorsque la recherche sur le C++11 a échouée). | + | Partir d'un mot-clé est beaucoup plus simple. Il suffit de rechercher dans un moteur de recherche ce mot-clé (par exemple en tapant "C++11 mot-clé") pour trouver des références sur le sujet (évitez de rechercher dans un premier temps "C++ mot-clé", il existe beaucoup de références obsolètes sur internet. Ne faites cela que dans un second temps, lorsque la recherche sur le C++11 a échouée). |
Lorsque vous lirez ce cours ou lorsque vous poserez des questions sur les forums internet, on vous donnera probablement des mots-clés, comme par exemple ''string'' pour les chaînes de caractères ou ''vector'' pour les tableaux. | Lorsque vous lirez ce cours ou lorsque vous poserez des questions sur les forums internet, on vous donnera probablement des mots-clés, comme par exemple ''string'' pour les chaînes de caractères ou ''vector'' pour les tableaux. | ||
Ligne 32: | Ligne 32: | ||
===== Trouver la fonctionnalité du C++ correspond à une idée ===== | ===== Trouver la fonctionnalité du C++ correspond à une idée ===== | ||
- | La documentation du C++ (et la bibliothèque standard) est organisée par thématique. Il suffit généralement d'avoir une idée du module qui sera utilisé pour retrouver facilement le mot-clé correspondant. Mais pour cela, il faut être un peut familier avec l'organisation de la documentation, pour savoir où chercher. Il n'y a pas 36 méthodes pour cela : il faut utiliser la documentation le plus souvent possible, même pour rechercher une fonctionnalité que vous connaissez déjà. | + | La documentation du C++ (et la bibliothèque standard) est organisée par thématiques. Il suffit généralement d'avoir une idée du module qui sera utilisé pour retrouver facilement le mot-clé correspondant. Mais pour cela, il faut être un peu familier avec l'organisation de la documentation, pour savoir où chercher. Il n'y a pas 36 méthodes pour cela : il faut utiliser la documentation le plus souvent possible, même pour rechercher une fonctionnalité que vous connaissez déjà. |
- | Les titres de modules sont suffisamment explicite, nous n'allons pas les détailler maintenant. Ils seront vu tout au long de ce cours, en fonction des besoins. Pour résumer les modules : | + | Les titres de modules sont suffisamment explicites, nous n'allons pas les détailler maintenant. Ils seront vus tout au long de ce cours, en fonction des besoins. Pour résumer les modules : |
* "Utilities library" : les utilitaires pour gérer les types, la mémoire, les erreurs, les dates et temps, etc. ; | * "Utilities library" : les utilitaires pour gérer les types, la mémoire, les erreurs, les dates et temps, etc. ; | ||
Ligne 54: | Ligne 54: | ||
La première partie intéressante est la documentation concernant le langage proprement dit. C'est probablement la partie la plus importante de votre apprentissage (sans de bonnes bases sur le langage, vous ne saurez pas utiliser correctement la bibliothèque standard), mais c'est paradoxalement la plus petite partie de la documentation (comparé à la bibliothèque standard). Et probablement celle que vous utiliserez le moins, tout au moins dans un premier temps. | La première partie intéressante est la documentation concernant le langage proprement dit. C'est probablement la partie la plus importante de votre apprentissage (sans de bonnes bases sur le langage, vous ne saurez pas utiliser correctement la bibliothèque standard), mais c'est paradoxalement la plus petite partie de la documentation (comparé à la bibliothèque standard). Et probablement celle que vous utiliserez le moins, tout au moins dans un premier temps. | ||
- | La raison est simple : comme le langage est indispensable à connaître, tout ce dont vous aurez besoin de connaître sera expliqué dans le cours. Cela ne veut pas dire que vous maîtriserez la totalité du langage dans ce premier cours (il faudra un peu plus de temps), mais que si une fonctionnalité n'est pas abordée dans ce cours, elle ne vous sera probablement pas nécessaire (sauf si vous travaillez sur un code qui n'est provient pas de ce cours ou si vous êtes curieux — mais dans ce cas, ne vous perdez pas trop dans vos explorations, essayez de suivre globalement le parcours proposé dans ce cours). | + | La raison est simple : comme le langage est indispensable à connaître, tout ce dont vous aurez besoin de connaître sera expliqué dans le cours. Cela ne veut pas dire que vous maîtriserez la totalité du langage dans ce premier cours (il faudra un peu plus de temps), mais que si une fonctionnalité n'est pas abordée dans ce cours, elle ne vous sera probablement pas nécessaire (sauf si vous travaillez sur un code qui ne provient pas de ce cours ou si vous êtes curieux — mais dans ce cas, ne vous perdez pas trop dans vos explorations, essayez de suivre globalement le parcours proposé dans ce cours). |
- | Au contraire, la bibliothèque standard contient de nombreuses fonctionnalités simples à comprendre (quand on connait les bases) et qui nécessitent surtout d'apprendre par la pratique. Tous les détails de la bibliothèques standard ne seront donc pas détaillés, il vous sera proposé à la place des travaux dirigés pour explorer et utiliser ces fonctionnalités. D'où l'importance de la documentation dans ce cas. | + | Au contraire, la bibliothèque standard contient de nombreuses fonctionnalités simples à comprendre (quand on connaît les bases) et qui nécessitent surtout d'apprendre par la pratique. Tous les détails de la bibliothèque standard ne seront donc pas abordés, il vous sera proposé à la place des travaux dirigés pour explorer et utiliser ces fonctionnalités. D'où l'importance de la documentation dans ce cas. |
Pour autant, si vous avez la curiosité d'explorer cette page de documentation, ne vous privez pas. Et n'hésitez pas à poser des questions sur les forums. Et pour vous aider à faire vos propres recherches, vous trouverez dans ce cours les mots-clés en anglais correspondant aux notions qui sont présentées. | Pour autant, si vous avez la curiosité d'explorer cette page de documentation, ne vous privez pas. Et n'hésitez pas à poser des questions sur les forums. Et pour vous aider à faire vos propres recherches, vous trouverez dans ce cours les mots-clés en anglais correspondant aux notions qui sont présentées. | ||
Ligne 62: | Ligne 62: | ||
===== La liste des fichiers d'en-tête ===== | ===== La liste des fichiers d'en-tête ===== | ||
- | La page des fichiers d'en-tête http://en.cppreference.com/w/cpp/header contient tous les fichiers de la bibliothèque standard que vous pouvez utiliser avec ''#include''. Lorsque vous rencontrer une fonctionnalité, vous pouvez regarder dans le fichier d'en-tête correspondant, pour savoir les fonctionnalités qui sont liées. | + | La page des fichiers d'en-tête http://en.cppreference.com/w/cpp/header contient tous les fichiers de la bibliothèque standard que vous pouvez utiliser avec ''#include''. Lorsque vous rencontrez une fonctionnalité, vous pouvez regarder dans le fichier d'en-tête correspondant, pour savoir les fonctionnalités qui sont liées. |
- | Les fichiers d'en-tête commençant par "c" sont en fait des importations de la bibliothèque standard du C, disponible pour des raisons de compatibilité. | + | Les fichiers d'en-tête commençant par "c" sont en fait des importations de la bibliothèque standard du C, disponibles pour des raisons de compatibilité. |
- | <note>Un fichier d'en-tête de la bibliothèque standard du C sera appelée en C en utilisant une syntaxe différente du C++. Le nom ne contient pas le préfixe "c" et contient l'extension ".h" : | + | <note>Un fichier d'en-tête de la bibliothèque standard du C sera appelé en C en utilisant une syntaxe différente du C++. Le nom ne contient pas le préfixe "c" et contient l'extension ".h" : |
- | <code>#include <math.h></code> | + | <code c>#include <math.h></code> |
- | Vous trouverez peut-être ce type d'inclusion dans de vieux code C++ sur internet. Ne reprenez pas directement le code à l'identique, mais remplacez par le fichier d'en-tête C++ correspondant (par exemple ''<cmath>'' dans cet exemple). Votre code pourra fonctionner si vous oubliez de la faire, mais cela posera des problèmes de conflits avec le code C++ sur le long terme.</note> | + | Vous trouverez peut-être ce type d'inclusion dans de vieux codes C++ sur internet. Ne reprenez pas directement le code à l'identique, mais remplacez-le par le fichier d'en-tête C++ correspondant (par exemple ''<cmath>'' dans cet exemple). Votre code pourra fonctionner si vous oubliez de le faire, mais cela posera des problèmes de conflits avec le code C++ sur le long terme.</note> |
===== Savoir lire une page de documentation ===== | ===== Savoir lire une page de documentation ===== | ||
Ligne 84: | Ligne 84: | ||
* std::basic_ostream | * std::basic_ostream | ||
- | Cela signifie que ''std::cout'' est définie dans ''std::basic_ostream'', qui fait partie du module "entrée et sortie" de la partie "C++". Si on souhaite trouver les fonctionnalités similaires, vous pouvez regarder dans ''std::basic_ostream'' et/ou dans "Input/output library". | + | Cela signifie que ''std::cout'' est défini dans ''std::basic_ostream'', qui fait partie du module "entrée et sortie" de la partie "C++". Si on souhaite trouver les fonctionnalités similaires, vous pouvez regarder dans ''std::basic_ostream'' et/ou dans "Input/output library". |
En dessous, vous avez une autre ligne importante, dont on a déjà parlé : | En dessous, vous avez une autre ligne importante, dont on a déjà parlé : |