OVH Cloud OVH Cloud

Newbies en C++ !

437 réponses
Avatar
Fuxy
Bonsoir à tous,


Voilà, il y a encore 1 mois, j'étais sous Windoz XP et je "bidouillais"
en VisualBasic 6.0

Depuis je suis passé sous Linux Suse 9.1 et je souhaiterais continuer à
"bidouiller", je ne cherche pas à développer des applications énormes,
mais juste des petits trucs pour m'amuser.

J'ai vu que sous Linux, le C++ avait l'air très répendu, j'ai donc
installé KDevelop qui permet de programmer en C++.

Et voilà, j'en suis à ce stade, j'ai acheté un bouquin sur le C++, j'en
suis à la page 10 ! et je me dis que ça a l'air un peu compliqué ...

Pouvez vous me conseiller ? est ce que le C++ est un bon choix pour moi
qui n'y connait rien ?

Merci pour votre aide.

A Bientot

--
Mail envoyé depuis Thunderbird
Sous Linux Suse 9.1 Pro

10 réponses

Avatar
Alain Naigeon
"drkm" a écrit dans le message news:


Finalement, nous devrions tous suivre l'enseignement de l'homme des
cavernes, puisque tout ce que nous connaissons aujourd'hui, dans tous
les domaines, a été construit à partir de cette masse nulle de
connaissance.


Oui, à moi aussi on m'a seriné pendant des années que c'étaient des
singes à peine dégrossis. Et puis un jour je me suis retrouvé à 3 mètres
d'une peinture sur une paroi, et ça a été un grand choc de ressentir
que tout ça était faux. Donc, moi pour qui le vocabulaire est important,
je ne qualifierais jamais de merdique un vieux Stroustrup des cavernes.

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France

Avatar
Alain Naigeon
"Pierre Maurette" a écrit dans le message news:


Au demeurant, un groupe de discussion n'est pas un service
question->réponse,
allez hop, et que ça saute.


Ce fil, comme tant d'autres, est un chat (bavardage, pas le minou)
déguisé, et non pas un échange normal usenet. Je n'en sais rien, mais
j'imagine qu'il existe en langue anglaise des chats sur le C++.
En l'absence de chat spécifique, pourquoi ne pas se faire plaisir? Le
seul problème, c'est que de telles conversations vont polluer les
archives du groupe francophone référence sur le C++.


Ca c'est ton jugement sur le contenu de l'échange, et je peux le
comprendre. En présence de protestations nombreuses, et à défaut
de réponses sensées, y compris par certains "piliers" du NG, j'aurais
immédiatement arrêté.
Mais mon propos était plutôt : si tu poses une question, et que tu reçois
une réponse, tu n'es pas en droit d'interdire, dans un NG public, que
d'autres s'en saisissent pour discuter de sujets sous-jacents (newbie->
apprentissage->enseignement du langage). Après, comme dit ci-dessus,
chacun juge de la pertinence des échanges.

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


Avatar
drkm
"Arnaud Debaene" writes:

Ce n'est pas une question de vocabulaire "fleuri" ou pas : C'est juste que
j'éspère ne jamais avoir pour prof une personne qu se permet de juger
catégoriquement et à l'emporte-pièce un bouquin, sans même l'avoir lu, et en
se basant sur un ouï-dire concernant le 1er chapitre uniquement, voir même
sur 1 ligne de code (le "void main" que tu nous ressort régulièrement). Ce
n'est ni professionnel ni utile pour les newbies à qui tu réponds. Et
admettre qu'il n' y a pas *une* bonne façon d'enseigner le C++ me semble
être la base de toute discussion sur le sujet (mais apparemment, c'est un
sujet qui tient tellement à coeur à certains que je pense précher dans le
désert...)


Qu'il n'y ai pas une seule et unique bonne manière d'enseigner le
C++ ne fait j'imagine de doute pour personne. Il y a sans doute
autant de bonnes manières que de personnes à qui l'enseigner. Mais
cela n'empêhe pas d'évaluer certains bouquins. Doit-on condamner les
critiques de l'ACCU parcequ'elles ne disent pas, plutôt que de
déconseiller certains livres :

« Tiens, une nouvelles méthode d'enseignement. À base de void
main(). Et qui aborde l'utilisation des chaînes de caractères à
la C avant std::string. Et qui n'aborde pas std::vector<>. Et
qui n'utilise pas le qualificateur d'espace de noms "std::". Et
qui utilise "c += ( 'A' - 'a' )" pour passer c en majuscule.
Original. Comme personne n'a encore expérimenté une telle
méthode, nous nous garderons bien de tenter d'en donner un avis
éclairant. »

Il est difficile d'expliquer à un débutant comment se rendre compte
si le livre qu'il a acheté est bon ou pas. Mais certains indices sont
révélateurs, sans toutefois constituer de réelles preuves. Quoique
l'on dise, un bouquin sur le C++ qui donne comme prototype de main
« void main() » a beaucoup de chances d'être mauvais. S'il n'avait
que ce défaut, passe encore. Mais il est révélateur du niveau sans
doute peu élevé de son auteur.

Bien sûr, ce n'est pas une méthode infaillible. Si je devais faire
la critique d'un livre à un ami ou un étudiant, je prendrais la peine
de le lire sommairement, de le feuilleter attentivement. Mais je
reste persuadé que cela [*] reste un bon indicateur pour quelqu'un se
retrouvant devant une jungle de livres différents (ou devant le livre
qu'on vient de lui offrir) et *ne s'y connaissant pas*.

[*] Le coup du « void main() », le fait de parler de std::string
et std::vector<> dès le début du bouquin, etc.

Quand à je ne sais plus qui (pas toi il me semble) qui a parlé de brûler
toutes ces "merdes",


Sans doute parles-tu de :

S'il ne connais pas le C, pourquoi acheter un livre destiné à
apprendre le C++ aux gens connaissant le C ? Si le livre n'est
pas destiné à des personnes connaissant le C et que ses lecteurs
se retrouvent perdus ssi il ne connaissent pas le C, alors le
livre est à jeter/brûler/déchiqueter/se faire
rembourser/noyer/chatouiller jusqu'à ce que mort s'en suive/pendre
haut et court/...

Si c'est le cas, je ne parlais pas des « merdes » que tu cites. Et je
ne parlais pas de /les/ brûler.

je rappellerais que d'habitude, ce sont les nazis ou
les hayatollas qui organisent des autodaffés.


Je suis au courant. Et s'il s'agissait bien du passage cité
ci-dessus auquel tu pensais, où y vois-tu une quelconque incitation à
l'autodaffé ?

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html

Avatar
Martinez Jerome
Fabien LE LEZ wrote:

Par exemple, supposons que je veuille me mettre à Java. Je perds
énormément de possibilités, et je gagne... quoi ?


Un seul "executable" pour toutes les plates-formes
Pas de "configure" horrible a faire pour que ca compile partout
L'equivalent d'une STL beaucoup plus complet (sockets, serialisation,
graphique par exemple)

Je dis ca, mais bon je n'aime pas Java de fait de ce qu'on perd :)

Avatar
Arnaud Debaene
drkm wrote:
"Arnaud Debaene" writes:

Si je devais faire
la critique d'un livre à un ami ou un étudiant, je prendrais la peine
de le lire sommairement, de le feuilleter attentivement.
Amen! Je souhaiterais juste que tout le monde en fasse autant, et ne se

contente pas de ce que'un newbie a pu dire ici sur le bouqin qu'il a acheté
pour juger le bouquin en question.
Et je ne parle pas des messages où l'on accuse pour ainsi dire un prof
d'imcompétence d'après ce que peux raconter un de ses élèves ici, sans avoir
la moindre idée de ce à quoi ressemble réellement son cours (et bien sûr
sans qu'il ait une chance de s'expliquer).

<snip>
Quand à je ne sais plus qui (pas toi il me semble) qui a parlé de
brûler toutes ces "merdes",


Sans doute parles-tu de :
<snip>

Je ne parlais pas d'*un* message, il y en a eu plusieurs sur le même thème
(j'ai la flemme de chercher dans les archives, et te toute façon je ne veux
pas faire d'attaques ad-hominem).
<snip>

Je suis au courant. Et s'il s'agissait bien du passage cité
ci-dessus auquel tu pensais, où y vois-tu une quelconque incitation à
l'autodaffé ?


Certes non, mais il y a eu d'autres messages moins 2nd degré que celui-là
(ou alors ls gens n'ont pas su faire passer le 2nd degré dans leur post - ce
qui revient au même).

Et franchement, quand je vois les positions intétransigantes et passionnées
que certains prennent pour un sujet aussi "neutre" que l'enseignement du
C++, je me demande à quoi ressemble un débât sur un sujet vraiement
polémique, genre politique ou religion :-(

Arnaud


Avatar
Laurent Deniau
wrote:
[...]

Note que sur les remarques suivantes, je n'ai pas dit que C++ avait tort
(la pluspart sont logiques voir indispensables) mais que const a une
semantique qui change en fonction de son utilisation. Ca veut dire que
le programmeur doit etre plus attentif.

Et const a une semantique en C++ qui change en fonction de son
utilisation. De memoire:



- const sur une variable globale signifie static const. BS
recommande d'ailleurs de les mettres dans le header.



En effet. On se démande bien pourquoi ; c'est une incohérence en C++.


On évite le problème en précédant toujours la déclaration ou de
static, ou d'extern.


Je n'ai pas dit que chaque cas n'a pas son remede...

- const sur une reference locale cree un temporaire (interdit sur
un non-const).



Et qu'est-ce que le const sur une référence fait en C ? C'est clair
que quand on applique const sur des choses qui n'existent pas en C,
le C++ est libre, sans soulever des problèmes de compatibilité.

- const sur une reference temporaire modifie sa duree de vie.


Voir ci-dessus.



Exact. Mais la duree de vie est differente avec et sans const, le tout
en C++. cf ma premiere remarque en debut de post.

- const int se comporte comme un enum a l'exterieur d'une classe
(mais pas dedans).



Comment ? Const int ne se comporte jamais comme un enum.

En revanche, c'est vrai qu'un objet déclaré const peut faire partie
d'une expression constante, sous certaines conditions, alors que ce
n'est pas le cas en C.


C'est ce que j'ai dit. Quelles sont les conditions dont tu parles? Il me
semble qu'a *l'exterieur de la definition d'une classe* on peut utiliser
partout un const int a la place d'un enum. La reciproque n'est biensur
pas vraie.

- const est ignore par l'overloading pour les arguments autres que
this s'il est au niveau le plus externe de la specification du type
mais il l'est pour les autres niveaux.


Et comment fonctionne la résolution de surcharge avec const en C.

Comme le const avec les références, la différence, ce n'est pas le
const. La différence, c'est que ce auquel on l'applique n'existe
carrément pas en C.


certe. Encore une fois, je ne compare pas C++ avec C, mais const vs no
const en C++. Le C aussi a ses problemes (cf l'interminable post recent
sur c.s.c a propos de void** et ses variantes const, le titre du post
etait une question du style "broken type system?" ou qque chose comme ca).

- j'en oublie surement...



J'ai oublie notament les static const int initialisable dans la classe
(seul cas particulier de ce type avec les enum). BS dit aussi que c'est
un "misfeature".

et tout ca en plus de la semantique du C ou const signifie
simplement read-only et c'est tout.



Et dans C et dans C++, le const fait partie du système de typage. Tu
ne peux pas passer un char const* à un char*. C'est l'essentiel. Pour
la reste, on tombe dans des détails sécondaires, ou des choses qui
n'existent qu'en C++.


L'abondance de details peut nuire a l'apprentissage d'un language qui
necessitera des developpeurs plus chevronnes/attentifs pour ecrire du
code correct. Je ne sais pas si un developpeur C++ gagne plus qu'un
developpeur C ou Java ;-)

a+, ld.


Avatar
drkm
"Alain Naigeon" writes:

"drkm" a écrit dans le message news:


Finalement, nous devrions tous suivre l'enseignement de l'homme des
cavernes, puisque tout ce que nous connaissons aujourd'hui, dans tous
les domaines, a été construit à partir de cette masse nulle de
connaissance.


Oui, à moi aussi on m'a seriné pendant des années que c'étaient des
singes à peine dégrossis.


Je n'ai pas dit ça.

Mais affirmer que l'on ne peut émettre de jugement négatif sur
l'utilisation d'une ancienne forme d'apprentissage, sous prétexte que
les fruits de cet apprentissage en ont amenés à son amélioration
actuelle (tiens, amélioration, vraiment ?) revient à rejeter toute
forme d'évolution.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html


Avatar
drkm
"Alain Naigeon" writes:

"drkm" a écrit dans le message news:


Je ne suis pas sûr de comprendre. Veux-tu dire qu'il y a moyen
d'interpréter l'enfilade de plusieurs manières ?


Je veux dire, effectivement, que lorsque deux problématiques
se présentent dans un même fil, la lecture de ce dernier dépend
du poids que chacun attribue à chacune d'elles.


Mais il n'y avait qu'une problématique. Alors que l'on disait qu'il
faut enseigner le SL et ne pas la remplacer par des classes perso, tu
es venu t'écrier qu'il fallait absolument enseigner les mécanismes
d'implémentation de la SL, que nous militions pour la rétention
d'information, que nous pétions plus que notre cul en prenant en
condescendence ces pauvres pitits débutants.

Comment déceler à ce moment que tu parlais en fait de tout autre
chose, que tu avais juste décidé d'en parler par hasard à cet
endroit ?

Je désespérais
d'expliquer ça précisement sans être long, lorsque je suis tombé
sur ceci (autre msg de toi) :

La remarque porte sur le fait que le mot « hérésie » s'utilise
également en dehors du cadre religieux. Quant à la longueur de
l'enfilade, elle n'a pas trait au passage par le C pour apprendre le
C++, mais en grande partie à l'utilisation de la SL et l'exposé de son
implémentation.


dans la dernière proposition, commençant par "mais", le "et" relie
deux choses manifestement différentes, et tu as toi-même exposé
brillamment hier soir que la longueur du fil tenait à ce malentendu.


Oui.

Moi j'ai eu l'impression, à tort dans certains cas ou dans la plupart
des cas (?) que l'on dépréciait l'étude des mécanismes qui permettent
à la STL d'exister,


Non. Simplement en présenter d'abord l'utitlisation.

et d'autres ont eu l'impression que j'étais contre, ou
indifférent à son usage.


Oui. Pour ma part, c'est le contexte où tu es intervenu qui m'a
trompé.

Maintenant je ne suis pas sûr qu'il faille
prolonger indéfiniment puisque chacun s'est expliqué longuement
et sans contrainte.


En effet.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html


Avatar
drkm
"Arnaud Debaene" writes:

drkm wrote:

"Arnaud Debaene" writes:


Et je ne parle pas des messages où l'on accuse pour ainsi dire un prof
d'imcompétence d'après ce que peux raconter un de ses élèves ici, sans avoir
la moindre idée de ce à quoi ressemble réellement son cours (et bien sûr
sans qu'il ait une chance de s'expliquer).


J'ai moi-même écrit plusieurs articles de ce genre. Sur mes profs à
moi. Un prof de C++ qui ne connaissais pas la notion de namespace, et
n'avait même jamais rencontré « std:: ». Ou un prof de C enseignant
l'égalité stricte entre pointeur et tableau C. Il y a tout de même
des critères objectifs permettant de juger de la compétence d'un prof.
Quand ce n'est pas le prof d'un cours que l'on a suivit, il faut
évidemment faire attention à ne pas trop vite généraliser.

Je suis d'accord pour dire que parfois, certains article tranchent
un peu vite sur ces questions. Mais je n'hadère pas à la thèse selon
laquelle on ne peut rien qualifier de négatif, et que si c'est le cas,
alors on est intégriste dans sa manière de voir l'enseignement d'une
matière.

<snip>
Quand à je ne sais plus qui (pas toi il me semble) qui a parlé de
brûler toutes ces "merdes",


Sans doute parles-tu de :
<snip>

Je ne parlais pas d'*un* message, il y en a eu plusieurs sur le même thème
(j'ai la flemme de chercher dans les archives, et te toute façon je ne veux
pas faire d'attaques ad-hominem).
<snip>


Si quelqu'un prône vraiment l'autodaffé, je ne pense pas qu'il
s'agisse d'une attaque ad-hominem que de condamner cette position. Si
cela m'est arrivé, je te serai reconnaissant de m'en alerter,
crois-moi.

Je suis au courant. Et s'il s'agissait bien du passage cité
ci-dessus auquel tu pensais, où y vois-tu une quelconque incitation à
l'autodaffé ?


Certes non, mais il y a eu d'autres messages moins 2nd degré que celui-là
(ou alors ls gens n'ont pas su faire passer le 2nd degré dans leur post - ce
qui revient au même).

Et franchement, quand je vois les positions intétransigantes et passionnées
que certains prennent pour un sujet aussi "neutre" que l'enseignement du
C++, je me demande à quoi ressemble un débât sur un sujet vraiement
polémique, genre politique ou religion :-(


Bof. Se lancer dans l'apprentissage du C++ est une tâche
conséquente. Je trouve important de guider le débutant vers un
enseignement de qualité, plutôt que de le laisser perdre son temps
avec des bouquins médiocres.

Et il y a moyen de trouver des critères objectifs dans ces
discussions. Je prends pour ma part plus de précautions lorsque je
parle de religion.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html



Avatar
PRORIOL Fabien
Desolé, je donnait juste un avis personnel;
En effet peut etre que pour un PRO il y a des truc pas top;
Mais pour apprendre je le trouve bien;

Je l'est conseiller a 2 3 de mes collegues qui l'ont aussi acheté, et il ne
m'ent on pas dit du mal.

Il a surtout l'avantage de ne pas NOYER le lecteur newbee sous plein de truc
incomprehensible, et d'expliquer assez simplement.

il n'y a pas de void main() ni meme de printf dans les premiere page;
uniquement des cout cin; des std::string (par contre des tableau mais pas de
vector<> des le debut).

Je trouve que c'est un bon compromis, pas trop barbant a lire, avec des
exemple d'experience professionnel simpa....

En gros pendant mes etude j'ai remarquer qu'il y avait 2 style de prof (y'en
a + mais je caricature volontairement) :

Pendant mon BTS Electrotech, notre prof a commencer son cours sur les moteur
asynchrone comme suit :
Il a pris 3 bobine qu'il a brancher en triphasé, puis il a placer sur un
clou de charpentier une boite de ferraille au centre; elle C mise a tournée;
dans sont cours il a demontrer pourquoi elle tournait.
Maintenant qund on me parle d'asynchrone, je revoit la boite.....
En revanche, il ne fallait pas demander au prof un truc qui sortait trop du
programme de BTS car il ne savait pas repondre.....

Ensuite, a l'insa (ecole ingé) je me retrouve a un cours sur l'asynchrone;
ce cours etait fait par un prof-chercheur;
Il a commencer sont cours par redemontrer les lois fondamentale du
magnetisme; il a passait 4h a ecrire des formule incomprehensible au
tableau.....
En sortant j'ai dit a un collegue : "putain, nous en BTS on nous avais pas
expliquer les moteurs asynchrone de cette facon" et il m'a repondu "ha, mais
l'asynchrone c'est un moteur????". Super les 4h de cours!!!!!
Par contre ce prof en connaissait des longueur d'avance sur
l'electrotech.....

La question est :
Pour apprendre quelque chose, vaut-il mieu un prof caller qui ne sait pas
expliquer, ou un prof qui explique tres bien le peu qu'il connait???

Pour moi j'aime mieu avoir des prof comme celui de BTS, puis ensuite aller
voir le prof caller si besoin......

En prog, c'est pareil; faut aprendre a marcher avant de courir, mais si on
marche pas trop droit au debut....

@+Fab