OVH Cloud OVH Cloud

Début en C et C++

106 réponses
Avatar
HB
Bonjour,


En début d'année, je vais suivre une formation dans l'automatisme et
l'informatique Industriel.


cependant je ne connais rien en langage de programmation. je suis à la
recherche de site voir des livres, afin de prendre de l'avance.

Question au passage, pour apprendre le C++ j'entend différente sons de
cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.

Donc faut il l'apprendre ?

Merci de vos réponses

10 réponses

7 8 9 10 11
Avatar
Fabien LE LEZ
On Mon, 01 Sep 2008 11:28:24 +0200, Mickaël Wolff
:

Et pourquoi pas wxwidget ou gtkmm ? ;)



wxWidgets a, pour des raisons historiques, une particularité qui rend
son utilisation assez pénible : des wxString partout au lieu de
std::string, et même des wxStringArray au lieu de
std::vector<std::string>. Du coup, il y a des conversions
(heureusement souvent implicites) presque à chaque appel de fonction.
Avatar
Gabriel Dos Reis
Fabien LE LEZ writes:

| On 01 Sep 2008 03:55:16 -0500, Gabriel Dos Reis :
|
| >| Ouais, mais celui-là, y'a pas grand-monde en mesure de le conseil ler.
| >
| >Mais maintenant, on sait qu'il existe ; et pas mal de gens savent
| >qu'ils existent
|
| Mais combien ont lu la version définitive ? Ou au moins, une partie
| assez importante d'une version assez proche de la version définitive
| pour pouvoir le conseiller ?

Demande à Addison-Wesley/Pearson (ou l'auteur, son email est publique :-)

-- Gaby
Avatar
James Kanze
On Sep 2, 8:29 am, ""
wrote:
On 1 sep, 10:52, Gabriel Dos Reis wrote:



> | Je pense que le passage d'arguments par référence
> constante doit | arriver assez tôt,



> Définis « assez tôt » :-)



En l'occurrence, assez tôt, ça voulait dire pour moi dès qu'on
veut passer des vectors à des fonctions, ce qui arrive
probablement juste après qu'on ait appris les boucles et les
fonctions.



Après qu'on a appris la plupart des méchanismes de contrôle de
flux (boucles, if), donc. Et après qu'on a apris les types de
base.

Aussi, c'est assez rare (très, très rare, même) de passer un
vector à une fonction en C++ idiomatique. On passe des
itérateurs.

En tout cas bien avant que l'on ait commencé à apprendre les
types définis par l'utilisateur, donc assez tôt.



Là, je ne suis pas si sûr. Je envisagerais bien enseigner des
classes avant les tableaux (qui ne sont en somme qu'un cas
particulier de la composition).

> | si l'on veut donner de bonnes habitudes, non ?



> Lesquelles ?



> Passer des doubles ou floats ou ints par référence const n'est pas une
> bonne habitude. Dans mon expérience, dès que tu mentionnes quelque
> chose comme ça, il y a deux réactions possibles :
> (1) ils commencent à en foutre partout, ou
> (2) ils sont complètement tétanisés à l'idée de voir leurs
> programmes tout d'un coup inefficaces parce qu'ils n'ont pas mis
> assez de const ref.



Donc tu proposes de tout passer par copie au début, même des
structures lourdes, et de leur montrer le passage par
référence const bien plus tard ?



Dans beaucoup de cas, le passage par référence const n'est
réelement qu'une optimisation. À ne présenter, donc, que bien
tardivement.

A quel moment ? Après qu'ils aient vu les constructeurs par
copie te semble un bon endroit ? A un autre moment encore ?



Après qu'ils aient maîtrisé les éléments de base. Au même momen t
que le surcharge des opérateurs, peut-être.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Avatar
James Kanze
On Sep 1, 1:30 pm, Mickaël Wolff wrote:

[...]
Cependant, je trouve aussi étrange le choix de FLTK, qui est tout de
même un abandonware si l'on en croit la doc (la dernière version date de
début 2007).



Je vois une release qui date de 29 août, 2008, ce qui n'est pas
si ancien que ça.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Avatar
Fabien LE LEZ
On Tue, 2 Sep 2008 02:07:12 -0700 (PDT), James Kanze
:

Cependant, je trouve aussi étrange le choix de FLTK, qui est tout de
même un abandonware si l'on en croit la doc (la dernière version date de
début 2007).



Je vois une release qui date de 29 août, 2008, ce qui n'est pas
si ancien que ça.



Apparemment la dernière activité humaine est effectivement très
récente :

r6162 | matt | 2008-08-15 14:18:27 -0700 (Fri, 15 Aug 2008) | 1 line

Replaced badly named type Fl_FontSize with Fl_Font_Descriptor. This
type is only used in the core files and not available to the user.
Avatar
Mickaël Wolff
James Kanze a écrit :

Je vois une release qui date de 29 août, 2008, ce qui n'est pas
si ancien que ça.



C'est vrai que je me base toujours sur la date de la documentation.
Je ne devrais pas, mais bon, si la documentation n'est pas récente,
c'est qu'il y a un problème ;)

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
James Kanze
On Sep 2, 3:16 pm, Mickaël Wolff wrote:
James Kanze a écrit :



> Je vois une release qui date de 29 août, 2008, ce qui n'est pas
> si ancien que ça.



C'est vrai que je me base toujours sur la date de la documentation.
Je ne devrais pas, mais bon, si la documentation n'est pas récente,
c'est qu'il y a un problème ;)



Si l'interface de la bibliothèque évolue tellement vite qu'il
faut une remise à jour de la documentation trop souvent, il y a
un problème.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Avatar
Jean-Marc Bourguet
Mickaël Wolff writes:

James Kanze a écrit :

> Si l'interface de la bibliothèque évolue tellement vite qu'il
> faut une remise à jour de la documentation trop souvent, il y a
> un problème.

C'est marrant comme ta phrase peut être interprété de deux
manières. Certes, je comprends que tu veuilles dire qu'une documentation
qui change toutes les deux minutes ce n'est pas top. Mais que la
documentation ne change pas, mais que le code évolue peut signifier que
l'API change trop souvent pour être documentée :)



Les deux sont des problemes.
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Avatar
Mickaël Wolff
James Kanze a écrit :

Si l'interface de la bibliothèque évolue tellement vite qu'il
faut une remise à jour de la documentation trop souvent, il y a
un problème.



C'est marrant comme ta phrase peut être interprété de deux manières.
Certes, je comprends que tu veuilles dire qu'une documentation qui
change toutes les deux minutes ce n'est pas top. Mais que la
documentation ne change pas, mais que le code évolue peut signifier que
l'API change trop souvent pour être documentée :)

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
James Kanze
On Sep 3, 8:07 am, Mickaël Wolff wrote:
James Kanze a écrit :



> Si l'interface de la bibliothèque évolue tellement vite qu'il
> faut une remise à jour de la documentation trop souvent, il y a
> un problème.



C'est marrant comme ta phrase peut être interprété de deux
manières. Certes, je comprends que tu veuilles dire qu'une
documentation qui change toutes les deux minutes ce n'est pas
top. Mais que la documentation ne change pas, mais que le code
évolue peut signifier que l'API change trop souvent pour être
documentée :)



Ou que les auteurs ont pris soin que les modifications du code
n'impactent pas l'API.

En fait, dans le cas en question, il y a une version stable, et
différents « snapshots ». La version stable date bien d'il y a
un an, ou plus, et j'imagine que la documentation s'y rapporte.
C'est aussi à mon avis une bonne politique : il faut bien
expérimenter, mais l'utilisateur lambda ne veut pas une version
expérimentale.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
7 8 9 10 11