Là tout de suite je t'avouerai que j'ai pas trop la foi de relire un (énième) cours de C++, par contre je connais celui-ci https://cpp.developpez.com/cours/cpp/ qui est une bonne référence de mon point de vue.
Alors sous Windows je travaille avec Visual Studio 2015 car j'adore cet IDE. Sous Linux je bosse avec Vim, make, g++, gdb, git et valgrind en ligne de commande (ce qui est assez pratique pour plein de raisons, notamment le fait qu'un simple terminal me suffit pour bosser
au boulot notamment je travaille avec 4 ou 5 consoles kitty pluggées sur ma machine virtuelle de dev, au lieu de me faire chier à configurer un environnement graphique décent sur une RHEL6 qui me rend fou
)
Pourquoi g++ ? C'est en rapport avec GNU ? Est-ce que make de Linux est gmake ? Chez moi make = bmake par défaut
Pourquoi g++ ? C'est en rapport avec GNU ?
Oui c'est le compilo C++ du projet GNU, ça change quelque chose d'utiliser gmake/bmake ? Je ne connais que make sous GNU/linux je suppose que c'est gmake du coup.
Je sais que dans beaucoup de cas de compilation, je dois utiliser gmake au lieu de make sinon ça ne fonctionne pas.
SUPER !
et
cout << "hello world!\n";
Ne sont plus valable de nos jours. J'aime beaucoup la réaction des mecs genre "jette le bouquin qui t'a mentionné ces lignes"
Désolé, j'ai pas la fonction "edit" sur m.jeuxvideo.com
Je dis ça parce que le tuto que je suis, posté plus haut, m'indique ces lignes ![]()
Le site est vieux de toute façon, ça parle des logiciels des années 90 donc, poubelle
Tiens d'ailleurs j'ai une question concernant le metier de développeur : Est-ce qu'on peut devenir développeur en ne jurant QUE par C++ ? Ou faut-il être polyvalent ?
Perso j'utilise qtcreator pour tous mes projets en C++ (Qt et non Qt), c'est dispo sous Windows / Mac / Linux et ça peut être utilisé avec valgrind et git (et d'autres trucs) moi j'aime bien, c'est plus léger que visual studio qui est inutilisable sur mon PC parce que trop lent.
Voilà je voulais le dire parce que c'est pas un IDE extrêmement populaire (hors utilisation de Qt du moins) pourtant c'est très cool ![]()
[22:36:40] <[deban]_Dakien>
Désolé, j'ai pas la fonction "edit" sur m.jeuxvideo.com
Je veux pas faire ma pub mais si t'es sous Android il y a une application qui s'appelle RespawnIRC pour aller sur les forums de JVC ![]()
[22:38:10] <[deban]_Dakien>
Le site est vieux de toute façon, ça parle des logiciels des années 90 donc, poubelle
Dommage j'avais commencé avec ce cours aussi ça m'avait bien aidé, après ça doit bien faire 5 ans donc je me souviens plus trop du contenu.
Bah c'est pas que je veux pas mais si c'est pour mal apprendre... Ça sert à rien ![]()
Je suis bien sur PC mais j'aime bien m.jeuxvideo.com plutôt que le site original pour les forums.
Dans ce cas il y a aussi RespawnIRC PC qui est adapté à la lecture des blablas... Nan c'est bon j'arrête la pub ![]()
Sinon je pense que pour le C++ (du moins pour les bases) il y a pas grand chose qui était valable il y a 20 ans mais qui ne l'est plus actuellement. L'utilisation de '\n' au lieu de 'std::endl' est totalement justifiable par exemple, la seule différence entre les deux c'est que le premier ne flush pas la sortie, mais tout deux utiliseront bien le caractère à la ligne utilisé par ton OS (\r\n sous Windows etc).
Après l'include avec un .h/.hpp pour tout ce qui est std lib je crois que ça a jamais été une bonne chose, c'est juste pour la retrocompatibilite avec le C, bizarre que ce soit utilisé dans le cours ![]()
Je veux dire que je ne pense pas que tu puisses apprendre des choses qui ne sont plus utilisées dans le cours, c'est sur qu'avec les nouvelles versions de C++ il y a moyen de faire certaines choses plus rapidement / facilement, mais les "anciennes manières" de faire ne sont pas à jeter non plus je pense.
Enfin bref, je dis pas ça pour te forcer à lire le cours, ça se trouve il y a largement mieux mais je peux pas dire vu que c'est le seul que je connais, je dis ça juste pour relativiser et pour dire que le cours est pas totalement à la rue non plus quoi.
Oui d'accord à la seule condition de savoir reconnaître ce qui est à remplacer ou pas. Pour toi c'est peut-être évident mais moi, partant de zéro, si je peux éviter les trucs dépassés, je préfère tu comprends, parce que je ne saurai pas reconnaître une erreur et je vais mettre beaucoup de temps à comprendre ce qui ne va pas
Le 01 mai 2017 à 22:35:50 [deban]_Dakien a écrit :
SUPER !#include <iostream.h>et
cout << "hello world!\n";Ne sont plus valable de nos jours. J'aime beaucoup la réaction des mecs genre "jette le bouquin qui t'a mentionné ces lignes"
J'y connais pas grand chose, la 1ère ligne je crois que c'est ".h" qu'il n'est plus utile de mentionner, mais la 2nde ?
je suis curieux de savoir en quoi elle est obsolète au point de jeter un bouquin
Je comprends effectivement, dans ce cas je ne saurais pas vraiment te conseiller.
MaoMeth, l'utilisation de "\n" au lieu de "std::endl" j'imagine, mais comme j'ai précisé plus haut les deux ont un usage différent et l'un ne remplace pas totalement l'autre.
std::cout << "hello world!\n";
au lieu de
cout << "hello world!\n";
Et ça a fonctionné, ça a compilé
Ah tu parles du "std::" devant, c'est parce qu'il te manque la ligne "using namespace std;" sans doute , mais c'est bizarre je trouve pas cette ligne dans le cours, on parlait bien de celui-ci https://cpp.developpez.com/cours/cpp/ ou je me trompe ?
Pour détailler le truc "using namespace XXX;" permet de ne plus avoir à préfixer les éléments dudit namespace par "XXX::", un namespace c'est un endroit ou tu ranges tout ce que tu veux histoire de le séparer du reste (comme ça tu peux avoir plusieurs classes du même nom etc).
Après, quant au fait de savoir si c'est une bonne chose de faire un "using namespace" je sais pas trop, perso je le fais jamais mais si c'est utilisé avec parcimonie c'est pas un mal, par contre le faire tout le temps pour chaque namespace que tu rencontres c'est un peu idiot, ça perd l'intérêt des namespaces au final.
J'imagine qu'il manquait le `using namespace std` avant la mention de cout.
Dakien
En gros tous les symboles que tu définis dans du code source C++ peut être inclus dans un espace de nommage si tu le souhaites. C'est une façon de dire que, par exemple, une variable nommée "level" fait partie d'une bibliothèque que tu développes, et d'éviter les ambiguïtés au cas où tu utiliserais du code issu d'ailleurs qui définisse aussi une variable level.
Si tu bosses dans le namespace MaLib et que tu définis une variable globale nommée level, tu peux utiliser cette variable telle quelle au sein de ce namespace (en écrivant "level", donc), mais en dehors tu dois la préfixer par MaLib:: (ce qui donne MaLib::level). Si tu te rends compte que tu utilises souvent un ou plusieurs symboles définis dans un même namespace dans tes sources, tu peux ajouter une ligne telle que `using namespace MaLib` en début de fichier. Cette ligne signifie qu'à partir d'ici, si le compilateur ne trouve pas un symbole dans le namespace global (celui par défaut) il cherchera aussi dans le namespace MaLib.
Je ne sais pas si tu en es à savoir ce que sont des fichiers headers (.hpp en C++) et des fichiers source (.cpp) mais évite à tout prix d'employer des directives using dans les headers. Un header c'est amené à être utilisé à plusieurs endroits, parfois même par d'autres développeurs que toi, et une directive using c'est assez polluant (et ça peut causer autant de conflits que ça n'en résout, si c'est inclus de façon indésirée).
ah oui le délire du namespace. J'avoue avoir toujours mis using namespace std; au début de mes fichiers (par pure flemme d'apprendre à faire autrement
), du coup j'ai pas l'habitude de préciser std:: devant cout.
Je crois que using namespace std; pose un peu problème quand on fait du vrai développement avec de l'orienté objet et qu'on a plein de fichiers qui ont des trucs déclarés avec des noms similaires, mais j'ai jamais cherché à savoir.