std::{o,i}stringstream
Bon, ça s'utilise pas comme une fonction toute faite de type T -> string, mais ça prend 15 secondes à écrire.
La FAQ C++ d'ailleurs propose des fonctions de conversions T -> std::string et std::string -> T basées sur les std::stringstreams![]()
Salut,
Comme il est dit plus haut, apprendre les 2 permets d'avoir des perspectives beaucoup plus large.
Cependant, et malgré tout, je dirai d'apprendre le C pour commencer même si le but est d'aller vers le C++. Le C permet d'avoir les bases pour de nombreux langages de programmation et est vraiment très formateur. Par ailleurs, même si le but est le C++, une fois les boucles/conditions etc... apprises en C, c'est un jeu d'enfant de faire cette partie là de l'apprentissage C++. Et concernant les notions de pointeurs et chaines de caractères, apprenre à s'en servir ne prends pas beaucoup plus de temps et mieux, comprendre ces passages là permet de saisir comment ça se passe dans la mémoire de l'ordinateur et donc de comprendre ce que l'on fait et ce que l'on demande vraiment à son ordinateur quand on programme.
Vouloir apprendre sur le tas, surtout quand on est débutant, est une erreur (vouloir tout de suite faire plus de choses).
En résumé, commence par le C, en apprenant au moins jusqu'au notions de pointeurs, tableaux de caractères en console. Puis passes au C++ si tu penses que l'orienté objet va te convenir. Le mieux c'est de se fixer un but de premier programme peut-être.
A mon avis, vouloir tout de suite commencer par de la POO avec les notions d'héritage, de polymorphisme etc... surtout quand on est débutant et que l'on ne sait même pas ce qu'est une condition, c'est vouloir tout de suite passer à la F1 avant même de savoir conduire son vélo sur 2 roues.![]()
Tu n'as pas compris mon message.
Commencer par le C++ n'implique pas du tout de commencer par la POO.
C'est exactement le même principe que celui qui consiste à commencer par un langage adapté aux débutants comme le Pascal ou l'Ada: on fait abstraction de la mémoire pour se concentrer d'abord sur l'algorithmie.
PS: le modèle de mémoire du C commence à de plus en plus à s'éloigner du fonctionnement de la machine.
PPS: ne t'arrête pas à la lecture des messages de la première page avant de répondre
Que pipelines, mémoire cache, multi-processeurs, les instructions C qui sont réordonnées pour plus d'efficacité, les instructions des processeurs qui sont elles-même des macro-instructions, ... font qu'il y a une couche d'abstraction entre le C et ce qui se passe vraiment.
Certes le C est un modèle unifié et simplifié des plus proches de la machine. Et alors ?
On parlait de mémoire ou de processeur ? Bien sûr, le jeu d'instructions du langage C ne permet pas forcément d'exploiter toutes les possibilités de chaque processeur car le C doit rester portable or chaque processeur a sa propre architecture. Ce n'est pas quelque chose de nouveau, il en a toujours été ainsi. Que le C fasse beaucoup abstraction du matériel en général, je suis d'accord, mais en ce qui concerne la mémoire (la mémoire cache ne fait évidemment pas partie ce que c'est plus une composante du processeur que de la "mémoire", et je ne parle même pas du fait que certains processeurs (je n'ai pas dit les plus puissants ...) ne sont pas équipés d'un cache ...), je ne vois pas en quoi le modèle utilisé en C s'éloigne t-il de la réalité.
d'ailleurs, il me semble que écrire
alloc(ation)
et très nettement plus explicite du point de vue de ce qui se passe que
new
![]()
Une petite macro et c'est réglé.
Tu discutes plus sur la forme que sur le fond là ...![]()
ai-je dit le contraire ??
Je dis "en ce qui concerne la mémoire" ..
Si tu préfères calloc à alloc, pas de problèmes pour l'initialisation..
Je parlais d'allocation...
Et je dis que simplement il est plus explicite d'avoir "alloc" que "new", et que "new" ne signifie pas (sans explication supplémentaire) alloue...
je ne sais pas ce que vous avez, dès qu'on ose critiquer ce Dieu C++, c'est la curée...
Mes petits gars, écoutez la parole d'un développeur qui il y a 20ans faisait du C, et il y a 10 du C++:
Il n'y a pas de phénomènes de modes. Tous les ans ont voit apparaître des langages qui essayent de nouveaux concepts. Mais tous les 10 ans on voit apparaître une synthèse qui incorpore tous les concepts intéressants d'une époque. Il y a eu le C, une synthèse. Il y a eu le C++, un (bel) essai.
Quand on développe il faut être à la fois à la pointe des nouveaux concepts et au milieu du courant.
Désolé, mais ce qui est le plus riche intellectuellement et au milieu du courant, aujourd'hui, c'est JAVA.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager