« Discussion:Programmation C++ (débutant)/Notions de base » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Bmorel (discussion | contributions)
→‎Petites erreurs : nouvelle section
Ligne 26 :
 
pourquoi avoir montre un exemple pour faire du c++ manage avec visual c++ et non pas du c++ "normal" en aplication win32 console?
 
== Petites erreurs ==
 
Section "Un langage compilé"
"Les fichiers source sont des fichiers texte lisibles dont le nom se termine en général par .c, .cpp ou .h. "
 
Les extensions .c et .h sont celles du langage C, pas C++. Bon, par habitude, le .h est utilisé, mais plusieurs IDE/compilateurs se baseront sur l'extension pour déterminer si c'est du C ou du C++, donc, .c n'est pas une extension du C++.
Sinon, il manque les extensions utilisées fréquemment pour les template: .tpp notamment.
 
Section "La directive #include"
Les chevrons et les guillemets ont des chemins de recherche différents: les chevrons ne cherchent pas dans le répertoire courant, du moins, pas avec g++ 4.7 et son fonctionnement par défaut.
Essayer de faire ce programme:
./t1.h
./t2.h
./test/t3.h
./test/t4.h
./main.cpp
<source lang="cpp">
#include <t1.h>
#include "t2.h"
#include <t3.h>
#include "t4.h"
 
int main(){}
</source>
Compiler avec: "g++ main.cpp -I test" ne fonctionnera pas, le premier include échouant.
 
Section "using namespace std;"
3 choses:
_ personnellement, je n'utilise jamais les using namespace, c'est une question de goût, mais j'évite de cacher l'origine de ce que j'utilise, et ça ne m'empêche pas de me servir des outils! (référence à "Si ces fichiers d'en-tête sont inclus sans être suivi de la commande using namespace std;, cela ne fonctionnera pas correctement")
_ les fichiers genre <stdio.h> fonctionnent et sont parfaitement standards C++. Il n'y a aucun avertissement, y compris en activant le "mode parano" de g++ (j'active tout le temps ce "mode"). Les fichiers sans extensions servent simplement à rendre la chose plus esthétique (question de goût encore)
_ par ailleurs, ces fonctions héritées du C possèdent dans le standard 2 headers: les "cXXXX" et les "XXXX.h"
 
Section "Le fichier iostream"
Le wiki a interprété le "#" de l'include.
 
Section "cout"
Cout n'affiche pas sur la console, mais sur la sortie standard. Certes, un débutant ne verra pas la différence dans un premier temps, mais elle est très, très importante!
"sur certaines implémentation" implémentationS
Pour le point que certaines implémentations ne sont pas conformes à la norme, tu devrais préciser qu'elles ne sont pas standards. J'imagine qu'il ne s'agit que de vieux compilateurs? Parce que je n'ai jamais entendu parler de ce problème (il faut aussi dire que je n'aime pas les stream donc forcément...)
 
Section "Remarque"
Il n'est pas utile de mettre l'instruction pause si l'on lance le programme à partir d'une console. Et ce problème est identique avec n'importe quel OS.
 
Section "Utiliser Dev-Cpp sous Windows"
Une capture montre l'usage de la fonction "system(char*)" (pour pause) sans inclure le header correspondant. C'est une mauvaise habitude, qui n'est ni portable, ni standard.
Il faut ajouter "#include <stdlib.h>" ou "#include <cstdlib>"
 
Section "autres os" (elle n'a pas ce nom mais bon)
Déjà, il existe des IDE, bien plus simples d'accès pour les débutants, et utilisables aussi sous windows (ça aide, quand on viens du monde windows comme c'était mon cas, d'avoir utilisé un IDE comme Code::Blocks qui est portable).
Je ne citerai que Code::Blocks, KDevelop, QtCreator, mais il en existe bien d'autres. (Je n'ai pas dis que j'aime les 3 que j'ai cités, cela dit)
Donc, merci de ne pas contribuer à répandre l'impression erronée qu'il n'existe pas d'outils graphique de qualité ailleurs que sous windows (je remarque d'ailleurs qu'il n'y a aucune référence à Mac OS mais je ne le connaît pas donc je ne peux aider).
Accessoirement, CMake est portable, il peut donc être utilisé sous windows. C'est une bonne idée de le préciser, je pense.
[[Utilisateur:Bmorel|Bmorel]] ([[Discussion utilisateur:Bmorel|discussion]]) 11 octobre 2012 à 12:38 (CEST)
Revenir à la page « Programmation C++ (débutant)/Notions de base ».