Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
918 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Apprendre le C,C++...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Apprendre le C,C++...

n°196670
Bart-abat
Posté le 18-08-2002 à 23:18:50  profilanswer
 

Voilà, je rentre en 1er année ingénieur, et vais apprendre le C,C++!! Super. Je ni connais rien! Voudrais savoir si c'est si dur ke ça à apprendre?
Et y a t-il des bouquins permettant d'apprendre, où d'aider, à la comprhension?
Merci

mood
Publicité
Posté le 18-08-2002 à 23:18:50  profilanswer
 

n°196671
verdoux
And I'm still waiting
Posté le 18-08-2002 à 23:24:56  profilanswer
 

Le C, c'est tout simple.
Le C++ par contre c'est le langage le plus compliqué courramment utilisé.
 
Dans les 2 cas y a les bouquins écrits par les créateurs des 2 langages, le Kernighan et Ritchie pour le C et le Stroustrup pour le C++.
Rien qu'au niveau nombre de pages, tu comprends que c'est pas la même chose :D

n°196672
HappyHarry
Posté le 18-08-2002 à 23:25:12  profilanswer
 

pour le C : "le C ansi" de kernighan et ritchie (aka le petit livre jaune) ed. Dunod
pour le C++ : "le langage C++" de bjarne stroustrup ed. Campuspress
 
edit : grillaid ca m'apprendra a discuter sur icq en meme temps  :fou:  
 
pour la peine je laisse les références exactes ...


Message édité par HappyHarry le 18-08-2002 à 23:26:09
n°196682
farib
Posté le 18-08-2002 à 23:33:38  profilanswer
 

HappyHarry a écrit a écrit :

 
pour le C++ : "le langage C++" de bjarne stroustrup ed. Campuspress
 




euh.... c'est un peu hard quand même... je pense qu'on lui apprend le c++ en couche c (en gros on fait du c avec des cout paske c plus facile)
 
bart-abat, c coi ton école ?
 

n°196684
HappyHarry
Posté le 18-08-2002 à 23:34:24  profilanswer
 

farib a écrit a écrit :

 
euh.... c'est un peu hard quand même... je pense qu'on lui apprend le c++ en couche c (en gros on fait du c avec des cout paske c plus facile)
 
bart-abat, c coi ton école ?
 
 




 
oué ben la c pas la peine ... suis loin d'etre un spécialiste C++ mais ca c une connerie ...

n°196692
verdoux
And I'm still waiting
Posté le 18-08-2002 à 23:41:04  profilanswer
 

Plus didactique que le Stroustrup, il y a le Lippman & Lajoie, "l'essentiel du c++".

n°196694
Bart-abat
Posté le 18-08-2002 à 23:46:12  profilanswer
 

farib a écrit a écrit :

 
euh.... c'est un peu hard quand même... je pense qu'on lui apprend le c++ en couche c (en gros on fait du c avec des cout paske c plus facile)
 
bart-abat, c coi ton école ?
 
 




 
Merci de m'avoir rep!! :wahoo:  
Pour mon école, c'est pas polytech, centrale, rein de tout ca.
Moi c'est école bcp plus modeste. PAs connus je crois.
Elle est dans le PAs-de-Calais: L'EIPC (généralistes dans le domaine de la productique, l'industrie)
Voilà

n°196735
oliv5
Pourquoi ? Parce que !
Posté le 19-08-2002 à 00:48:03  profilanswer
 

Salut,  
c'est une bonne idée de commencer a programmer avant que t'aies les cours, comme ca tu sera a l'aise. C'est ce que j'ai fait, ainsi qu'un copain et ca lui a beaucoup servi car il peinait un peu en math et physique, ca a rattrapé tout ca.
En plus, si ca t'interesse, c'est pas trop dur. Commence par le C, et choisi un bouquin qui va loin, même si il ne commence pas par les trucs de débutants.  
 
Je m'explique : sur le net tu trouveras des tonnes de tutoriels pour commencer le C et tu en trouvera beaucoup moins pour aller plus loin. Alors garde tes sous et imprime à l'école (hihi:)).
 
Une fois que tu maitrise le C, lance toi plutot dans le java pour commencer les langages objets, c'est beaucoup plus pédagogique et en plus c'est ce que tu fera surement dans ton école si vous programmez un peu.
 
Apres, une fois que tu maitrise bien les concepts, tu pourras commencer le c++. Et encore, peut etre que le java te suffira.
 
En tout cas bonne chance.

n°197377
*Gilles*
Posté le 19-08-2002 à 17:51:48  profilanswer
 

Salut,
 
Ayant fait un DUT Info je ne peux que te conseiller de commencer par apprendre les bases de la prog en C, puis de passer aux pointeurs et à la POO , donc C++ ,et de faire du Java pourquoi pas parallèlement au C++ (c'est + sympathique le Java :-) )
 
Et euh c'est pas si dur que ça - enfin le C -, après le C++ faut s'accrocher un peu c'est une logique à assimiler (pointeurs, POO: classes, héritages...que de mauvais souvenirs... :-\ ).
 
Voilà
@+


Message édité par *Gilles* le 19-08-2002 à 17:53:57
n°197384
El_gringo
Posté le 19-08-2002 à 17:58:45  profilanswer
 

Verdoux a écrit a écrit :

Le C, c'est tout simple.
Le C++ par contre c'est le langage le plus compliqué courramment utilisé.




 
le C++ par rapport au C n'est pas si compliqué. Ce qu'on peut trouver compliqué dans le C++, c'est justement ce qu'il a de commun au C (pointeurs, gestion des allocations, désallocations de mémoire, ...).
Moi je dirais que le C est assez complexe. Parce qu'il est performant (on contrôle à peu près tout ce qu'il se passe ds la machine !). Le C++, c'est juste le passage à l'objet.
Moi je connaissais déja le C et la POO. J'ai u aucun problème à apprendre le C++ (j'ai mis 2 ou 3 mois à me démerder tt seul).

mood
Publicité
Posté le 19-08-2002 à 17:58:45  profilanswer
 

n°197520
verdoux
And I'm still waiting
Posté le 19-08-2002 à 22:11:40  profilanswer
 

Non ce qu'il y a de compliqué en c++ c'est tout ca qu'il y a en plus du C: l'héritage, la résolution des appels, les templates, les casts.

n°197693
El_gringo
Posté le 20-08-2002 à 08:59:11  profilanswer
 

Verdoux a écrit a écrit :

Non ce qu'il y a de compliqué en c++ c'est tout ca qu'il y a en plus du C: l'héritage, la résolution des appels, les templates, les casts.




 
l'héritage, c pas spécifique au C++, c'est de la POO. C la base de tous les langages objets. Résolution des appels, je vois pas de quoi tu parles...
Les templates j'trouve ça tout bête.
Les casts, ça existe en C.
Mais a mon avis, toi t'as galèré pour apprendre l'approche objet. ça c autre chose.

n°197962
*syl*
--> []
Posté le 20-08-2002 à 14:08:00  profilanswer
 

El_Gringo a écrit a écrit :

 
 
l'héritage, c pas spécifique au C++, c'est de la POO. C la base de tous les langages objets. Résolution des appels, je vois pas de quoi tu parles...
Les templates j'trouve ça tout bête.
Les casts, ça existe en C.
Mais a mon avis, toi t'as galèré pour apprendre l'approche objet. ça c autre chose.



Il doit parler de polymorphisme qd il parle de résolution des appels.. enfin Verdoux, dit moi si j'me trompe ;)

n°198091
ashDyson
Si ça saigne, ça peut mourrir.
Posté le 20-08-2002 à 16:04:27  profilanswer
 

Le langage C++, un poche a moins de 10?!! Je le trouve assez simple et bien foutu. Mais bon, C qu'un avis parmi d'autre.
 
http://www.campuspress.fr/espace/l [...] =726&dep=0
 
Je pense que la meilleur facon d'apprendre, C d'apprendre en cours puis bosser personellement.

n°198266
verdoux
And I'm still waiting
Posté le 20-08-2002 à 22:21:02  profilanswer
 

tiens El gringo, il donne quoi ce programme ?:

Code :
  1. #include <iostream>
  2. class A {
  3. public:
  4.         template<typename T> class B {
  5.                 public:
  6.                         T _b;
  7.                         B(const T& i):_b(i){}
  8.                         operator T() { return _b;}
  9.         };
  10. protected:
  11.         template<typename U> void f(U) {std::cout<<"A::g\n";}
  12.         virtual void f(int i) const {std::cout<<"A::f\n";}
  13.         virtual void f(char c) {std::cout<<"A::f\n";}
  14. };
  15. template<typename T> class C : public A {
  16. public:
  17.         typedef typename A::B<T> D;
  18.         void g(const C::D& i = C::D(0)) {f(T(0)); A::f(T(0));}
  19.         void f(long){}
  20. };
  21. int main() {
  22. C<int> cint;
  23. C<double> cdouble;
  24. C<char> cchar;
  25. cint.g();
  26. cdouble.g();
  27. cchar.g();
  28. return 0;
  29. }


Message édité par verdoux le 20-08-2002 à 22:29:40
n°198368
karlkox
Posté le 21-08-2002 à 00:11:31  profilanswer
 

el_gringo>je voudrais pas jouer au leche ... mais verdoux est loin d'être un débutant en C++ et en poo, je pense qu'il devait déja savoir ce que tu dis ... m'enfin c'est ce que je dit :}

n°198414
Musaran
Cerveaulté
Posté le 21-08-2002 à 01:25:23  profilanswer
 

HappyHarry a écrit a écrit :

pour le C++ : "le langage C++" de bjarne stroustrup ed. Campuspress


C'est un livre de référence exhaustif.
C'est destiné au perfectionnement, et un peu indigeste pour les débutants.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°198426
gilou
Modérateur
Modzilla
Posté le 21-08-2002 à 02:36:55  profilanswer
 

Verdoux a écrit a écrit :

Plus didactique que le Stroustrup, il y a le Lippman & Lajoie, "l'essentiel du c++".




Le seul bon bouquin pour apprendre le C++ pour un neophite (hors des bouquins de Stroustrup), c'est le Koenig & Moo, Accelerated C++.http://www.acceleratedcpp.com/images/smallcover.jpg
A+,


Message édité par gilou le 21-08-2002 à 02:37:45

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°198442
El_gringo
Posté le 21-08-2002 à 08:52:10  profilanswer
 

Verdoux a écrit a écrit :

tiens El gringo, il donne quoi ce programme ?:

Code :
  1. #include <iostream>
  2. class A {
  3. public:
  4.         template<typename T> class B {
  5.                 public:
  6.                         T _b;
  7.                         B(const T& i):_b(i){}
  8.                         operator T() { return _b;}
  9.         };
  10. protected:
  11.         template<typename U> void f(U) {std::cout<<"A::g\n";}
  12.         virtual void f(int i) const {std::cout<<"A::f\n";}
  13.         virtual void f(char c) {std::cout<<"A::f\n";}
  14. };
  15. template<typename T> class C : public A {
  16. public:
  17.         typedef typename A::B<T> D;
  18.         void g(const C::D& i = C::D(0)) {f(T(0)); A::f(T(0));}
  19.         void f(long){}
  20. };
  21. int main() {
  22. C<int> cint;
  23. C<double> cdouble;
  24. C<char> cchar;
  25. cint.g();
  26. cdouble.g();
  27. cchar.g();
  28. return 0;
  29. }






 
Il est surtout pas clair et mal indenté !
 
...bon, ok, je fais dans la mauvaise foie là ! :D
J'dis pas que le C++ est tout simple, mais les histoires de pointeurs, allocations mémoire, quand t'as jammais fait, c aussi carrément déstabilisant !

n°198443
El_gringo
Posté le 21-08-2002 à 08:55:23  profilanswer
 

Evidement, en C++, on peut faire des trucs complètement tordus (comme le petit bout de prog que tu m'as filé), Ms on peut aussi faire des trucs très claires.

n°198446
farib
Posté le 21-08-2002 à 09:01:23  profilanswer
 

using namespace std c pas pour les iench :D

n°198448
LetoII
Le dormeur doit se réveiller
Posté le 21-08-2002 à 09:02:29  profilanswer
 

Verdoux a écrit a écrit :

tiens El gringo, il donne quoi ce programme ?:

Code :
  1. #include <iostream>
  2. class A {
  3. public:
  4.         template<typename T> class B {
  5.                 public:
  6.                         T _b;
  7.                         B(const T& i):_b(i){}
  8.                         operator T() { return _b;}
  9.         };
  10. protected:
  11.         template<typename U> void f(U) {std::cout<<"A::g\n";}
  12.         virtual void f(int i) const {std::cout<<"A::f\n";}
  13.         virtual void f(char c) {std::cout<<"A::f\n";}
  14. };
  15. template<typename T> class C : public A {
  16. public:
  17.         typedef typename A::B<T> D;
  18.         void g(const C::D& i = C::D(0)) {f(T(0)); A::f(T(0));}
  19.         void f(long){}
  20. };
  21. int main() {
  22. C<int> cint;
  23. C<double> cdouble;
  24. C<char> cchar;
  25. cint.g();
  26. cdouble.g();
  27. cchar.g();
  28. return 0;
  29. }






 
Il affiche:
 
A::g
A::g
A::f
 
Ca n'a rien de compliqué, j'ai déjà fait pire.


---------------
Le Tyran
n°198449
LetoII
Le dormeur doit se réveiller
Posté le 21-08-2002 à 09:03:16  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Il est surtout pas clair et mal indenté !
 
...bon, ok, je fais dans la mauvaise foie là ! :D




 
Non c pas de la mauvaise fois c vraiment mal indenté :D


---------------
Le Tyran
n°198452
verdoux
And I'm still waiting
Posté le 21-08-2002 à 09:08:23  profilanswer
 

letoII a écrit a écrit :

 
 
Il affiche:
 
A::g
A::g
A::f
 
Ca n'a rien de compliqué, j'ai déjà fait pire.




Mais pourquoi affiche-t-il cela ?


Message édité par verdoux le 21-08-2002 à 09:08:49
n°198470
El_gringo
Posté le 21-08-2002 à 09:33:57  profilanswer
 

farib a écrit a écrit :

using namespace std c pas pour les iench :D




 
...ça obscurcit le listing de pas utiliser le "using namespace std", c l'but recherché !


Message édité par El_gringo le 21-08-2002 à 09:35:09
n°198473
LetoII
Le dormeur doit se réveiller
Posté le 21-08-2002 à 09:36:14  profilanswer
 

verdoux a écrit a écrit :

 
Mais pourquoi affiche-t-il cela ?




 
cint.g(); => appel de C::f
             appel de A::f<int>(int), car cette méthode n'est pas const contrairement à A::f(int) const
             affichage de A::g
 
cdouble.g(); => appel de C::f
                appel de A::f<double>(double) (pas d'autre méthode accéptant de double)
                affichage de A::g
 
 
cchar.g(); => appel de C::f
              appel de A::f(char), la méthode exite déjà pas besoin d'instancier le template.
              affichage de A::f
 
En tout cas c comme ça que je le comprend.


---------------
Le Tyran
n°198506
LeGreg
Posté le 21-08-2002 à 10:26:22  profilanswer
 

Verdoux a écrit a écrit :

tiens El gringo, il donne quoi ce programme ?:

Code :
  1. #include <iostream>
  2. class A {
  3. public:
  4.         template<typename T> class B {
  5.                 public:
  6.                         T _b;
  7.                         B(const T& i):_b(i){}
  8.                         operator T() { return _b;}
  9.         };
  10. protected:
  11.         template<typename U> void f(U) {std::cout<<"A::g\n";}
  12.         virtual void f(int i) const {std::cout<<"A::f\n";}
  13.         virtual void f(char c) {std::cout<<"A::f\n";}
  14. };
  15. template<typename T> class C : public A {
  16. public:
  17.         typedef typename A::B<T> D;
  18.         void g(const C::D& i = C::D(0)) {f(T(0)); A::f(T(0));}
  19.         void f(long){}
  20. };
  21. int main() {
  22. C<int> cint;
  23. C<double> cdouble;
  24. C<char> cchar;
  25. cint.g();
  26. cdouble.g();
  27. cchar.g();
  28. return 0;
  29. }






 
c'est un concours d'obfuscated c++??
 
LeGreg

n°199207
verdoux
And I'm still waiting
Posté le 21-08-2002 à 20:13:55  profilanswer
 

legreg a écrit a écrit :

 
 
c'est un concours d'obfuscated c++??
 
LeGreg




C'est pas de l'obfuscated ! (même si il est vrai qu'il y a pas mal de trucs qui servent à rien :D)
T'as jamais jeté un oeil dans les fichiers de la STL ?
 
En tout cas quand on fait des entretiens d'embauche de prestas en c++, 90% n'arrivent pas à nous dire ce que sort ce genre de prog.
Il va de soi qu'on ne tient pas à ce qu'ils codent comme ça mais qu'au moins ils arrivent à s'y retrouver.

n°199273
LeGreg
Posté le 21-08-2002 à 22:39:23  profilanswer
 

Code :
  1. T'as jamais jeté un oeil dans les fichiers de la STL ?


sisi, je fais ca de temps en temps, j'ai meme fait des trucs style container STL pour le plaisir. (bon je sais je suis un peu maso)
 

Citation :

En tout cas quand on fait des entretiens d'embauche de prestas en c++, 90% n'arrivent pas à nous dire ce que sort ce genre de prog.


 
je me disais bien que ca me rappelait les tests bidon qu'on nous fait passer a l'embauche :D.
Y'a aussi plein de trucs du genre : "quelle est l'erreur dans ce programme" (il manque un point virgule), ou "A herite de D, B herite de C qui herite de A et de D, quel est l'ordre d'appel des constructeurs", ou encore "qu'affiche ce programme?" (avec des ruses sur l'heritage, la priorité des operateurs ou l'overload de fonctions).
 
Ce qui me fait rire c'est quand a l'entretien tu as le choix entre le questionnaire en C++ et celui en java, que tu prends le questionnaire C++ en sachant tres bien que tu vas faire du java dans ton futur poste..
 
M'enfin..
 

Code :
  1. Il va de soi qu'on ne tient pas à ce qu'ils codent comme ça mais qu'au moins ils arrivent à s'y retrouver.


 
Le probleme c'est que tu prends n'importe quel programme, tu remplaces les noms de classes par des lettres majuscules(A, B, C, D), les noms de variables par des lettres minuscules (i,j,k,l), tu vires l'indentation et les commentaires, et bien bravo, tu as un programme incomprehensible au commun des mortels..
 
LeGreg

n°199327
verdoux
And I'm still waiting
Posté le 21-08-2002 à 23:20:09  profilanswer
 

legreg a écrit a écrit :

 
Ce qui me fait rire c'est quand a l'entretien tu as le choix entre le questionnaire en C++ et celui en java, que tu prends le questionnaire C++ en sachant tres bien que tu vas faire du java dans ton futur poste..




Nan nous on le fait lors de l'entretien, avec le commercial du gars à côté qui essaie de nous expliquer que, si il faut, sa boîte paiera un stage de 5 jours de c++ à son candidat pour qu'il s'améliore :D
Après on lui explique que c'est pas la peine qu'il nous fasse perdre notre temps avec ses candidats avec "5 ans d'expérience en c++" et que s'il merde la prochaine fois, sa SSII, on la raye des listes d'achat.

n°199521
ashDyson
Si ça saigne, ça peut mourrir.
Posté le 22-08-2002 à 10:02:21  profilanswer
 

Verdoux>
On apprend un langage de programmation pour faire des programmes, pas pour programmer. Personnellement, G jamais utilisé les templates parce que j'en ai jamais eu besoin. tu vois la programmation comme une sorte de jeu d'echec puissance 10, comme dans le topic "trouvez l'erreur". Avec tous ces beaux programmes sans commentaires et aussi mal identés, tu fait quoi? un hello world de 500 lignes? Putaing, toi, tu as le sens de la fete!! Un vrai cow-boy de la prog!

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Apprendre le C,C++...

 

Sujets relatifs
ou apprendre le PHPAPPRENDRE LE PHP
je cherche un site ou qqu pour apprendre le langage CPhP ou Html ou autre ? si on veut apprendre un truc pérène...
Quelle est la meilleur façon d'apprendre le PHP ?BESOIN D'AIDE (debutant) POUR APPRENDRE LANGUAGE TI89
Tutorial pour apprendreI am 100% newbie, kel language apprendre???
Apprendre le javascriptapprendre a programmer en php
Plus de sujets relatifs à : Apprendre le C,C++...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR