Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation
Langages de programmation Forum général sur les langages de programmation, sur la POO, opinions, choix, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 09h54   #361
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 168
Points : 17 962
Points : 17 962
Bonjour,

Le C et le C++ sont deux langages bien distinct, et ce n'est pas le fait de connaitre l'un qui t'aidera pour l'autre.
Certes, tu connaitras la syntaxe des principales fonctions, mais dans ce cas, c'est aussi vrai pour le C++ que pour le Java (dont les syntaxes sont globalement proches).

Tu consideres que le C++ est plus simple ? Il va te falloir argumenter longtemps, d'autant plus si tu inclus la derniere norme (C++0X).

Pour faire une analogie, ce n'est pas parce que tu connais le francais que tu es avantage pour apprendre le hongrois plus que le grec, meme si l'alphabet est le meme en francais et en hongrois.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 21
Vieux 12/05/2011, 10h56   #362
sylvain230
 
Avatar de sylvain230
 
Homme Sylvain
Orléans
Inscription : mai 2008
Messages : 231
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Orléans
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 231
Points : -3
Points : -3
Citation:
Le C et le C++ sont deux langages bien distinct, et ce n'est pas le fait de connaitre l'un qui t'aidera pour l'autre.
C'est pas moi qui le dit ...

Citation:
C++
Successeur direct de C, C++ introduit les concepts de programmation Orientée-Objet et de programmation fonctionnelle dans un langage qui autrement ne connaissait que le procédural. Assez controversé dans ses choix d'implémentation, il est néanmoins le langage le plus utilisé dès qu'il s'agit de construire une application Windows.
Citation:
Le C++ reprend la quasi-intégralité des concepts présents dans le langage C, si bien que les programmes écrits en langage C fonctionnent avec un compilateur C++. En réalité le langage C++ est un surensemble du C, il y ajoute, entre autres, des fonctionnalités objet :

L'encapsulation
L'héritage (simple et multiple)
Le polymorphisme
Ensuite ...

Citation:
Tu consideres que le C++ est plus simple ? Il va te falloir argumenter longtemps
Citation:
Le langage C++ est une « amélioration » du langage C (le langage C a été mis au point par M.Ritchie et B.W.Kernighan au début des années 70). Bjarne Stroustrup, un ingénieur considéré comme l'inventeur du C++, a en effet décidé d'ajouter au langage C les propriétés de l'approche orientée objet. Ainsi, vers la fin des années 80 un nouveau langage, baptisé C with classes (traduisez « C avec des classes »), apparaît. Celui-ci a ensuite été renommé en C++, clin d'œil au symbole d'incrémentation ++ du langage C, afin de signaler qu'il s'agit d'un langage C amélioré
Voila un bel exemple : Les pointeurs en C, il y en a en C++ mais c'est beaucoup plus parlant.
En C, les allocations de mémoire sont très compliqué à gérer car le langage est bas niveau. Le C++ est plus haut niveau est plus explicite donc plus simple. J'en démordrai pas lol
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 07
Vieux 12/05/2011, 11h24   #363
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 168
Points : 17 962
Points : 17 962
Bonjour,

Des tutoriels qui contiennent des erreurs, il y en a plein partout, et malheureusement, celui que tu cites en fait partie.

Citation:
les programmes écrits en langage C fonctionnent avec un compilateur C++. En réalité le langage C++ est un surensemble du C
Ce n'est pas tout a fait vrai. Le C++ est presque un surensemble du C ; mais dans la mesure ou le langage definit de nouveaux mots-clefs qui n'existaient pas en C, ce n'est pas un exact surensemble. Par exemple "int new;" est valable en C, mais pas en C++.

Citation:
Voila un bel exemple : Les pointeurs en C, il y en a en C++ mais c'est beaucoup plus parlant.
En C, les allocations de mémoire sont très compliqué à gérer car le langage est bas niveau. Le C++ est plus haut niveau est plus explicite donc plus simple.
Comme le C++ introduit de nouvelles notions, il est egalement plus complexe. Peut-etre que le fait de ne pas gerer la memoire de la meme maniere te semble plus simple, mais des notions telles que l'heritage multiple, ou les templates, ne sont pas simples a bien manipuler, augmentant la complexite du langage. L'introduction de l'inference de type, ou des lambda fonctions, risquant d'ailleurs de compliquer encore un peu plus ce langage.

Les difficultes ne sont pas les memes si tu utilises un langage de bas niveau comme l'assembleur ou le C, ou un langage de (tres) haut niveau, mais ce n'est pas pour autant que le haut niveau n'inclue pas des notions qui peuvent etre tres complexes.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 12/05/2011, 11h27   #364
sylvain230
 
Avatar de sylvain230
 
Homme Sylvain
Orléans
Inscription : mai 2008
Messages : 231
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Orléans
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 231
Points : -3
Points : -3
Disons que personnellement, je trouve que la programmation orienté objet(C++) est plus facile à appréhender que la programmation procédurale(C) d'ou mon raisonnement.
sylvain230 est déconnecté   Envoyer un message privé Réponse avec citation 17
Vieux 12/05/2011, 20h58   #365
gl
Rédacteur/Modérateur
 
Homme
Inscription : juin 2002
Messages : 2 032
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : juin 2002
Messages : 2 032
Points : 3 826
Points : 3 826
Citation:
Envoyé par sylvain230 Voir le message
Disons que personnellement, je trouve que la programmation orienté objet(C++) est plus facile à appréhender que la programmation procédurale(C) d'ou mon raisonnement.
Oui enfin le lien C++ ==> programmation orienté objet est quand même extrêmement réducteur, C++ est multiparadigme.
gl est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 12/05/2011, 23h07   #366
Thierry Chappuis
Expert Confirmé Sénior
 
Avatar de Thierry Chappuis
 
Homme Thierry Chappuis
Enseignant Chercheur
Inscription : mai 2005
Messages : 3 481
Détails du profil
Informations personnelles :
Nom : Homme Thierry Chappuis
Âge : 36
Localisation : Suisse

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : mai 2005
Messages : 3 481
Points : 5 303
Points : 5 303
Il y a de nombreuses incompatibilités sémantiques entre le C et C++. Cet article fait un bon état des lieux des différences entre les deux langages. Il y a effictivement un sous-ensemble commun entre C et C++, mais C n'est lui même pas un sous-ensemble de C++.

Avec mes meilleures salutations

Thierry
__________________
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

FAQ-Python FAQ-C FAQ-C++

+
Thierry Chappuis est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 12/07/2011, 14h54   #367
undici
 
Femme
Webmarketer
Inscription : juillet 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Webmarketer
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 4
Points : -4
Points : -4
c++
undici est déconnecté   Envoyer un message privé Réponse avec citation 013
Vieux 20/07/2011, 16h46   #368
liberforce
Membre Expert
 
Homme
Développeur informatique
Inscription : juin 2009
Messages : 1 036
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : juin 2009
Messages : 1 036
Points : 1 521
Points : 1 521
Citation:
Envoyé par sylvain230 Voir le message
Disons que personnellement, je trouve que la programmation orienté objet(C++) est plus facile à appréhender que la programmation procédurale(C) d'ou mon raisonnement.
C'est pas comme si tout GTK+ était en C et orienté objet, hein...
liberforce est déconnecté   Envoyer un message privé Réponse avec citation 22
Vieux 18/09/2011, 21h07   #369
Serrurier-plombier
 
Homme
Inscription : septembre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 1
Points : -9
Points : -9
Salut,

Je te conseille le C++ , il y a plus de chose a apprendre
Serrurier-plombier est déconnecté   Envoyer un message privé Réponse avec citation 012
Vieux 25/11/2011, 16h50   #370
anna75bb
 
Femme Anna Michet
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Femme Anna Michet
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : -2
Points : -2
Juste un bref panorama :

Il existe 3 types de langages communs :
- les langages impératifs (C, VBA, Pascal...)
- les langages objets (Java, C++, Objective-C...)
- les langages fonctionnels (Caml, Scheme...)

Si tu veux bien te former commence par le langage C pour comprendre rapidement la logique des structures de données et de la mémoire. Dans un deuxième temps, attaque toi à du C ou Java pour apprendre la conception objet qui est celle la plus utilisée pour des vrais projets de développement.

++
anna75bb est déconnecté   Envoyer un message privé Réponse avec citation 04
Vieux 25/11/2011, 17h55   #371
Mat.M
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 440
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2006
Messages : 4 440
Points : 5 858
Points : 5 858
Citation:
Envoyé par sylvain230 Voir le message
C'est pas moi qui le dit ...

Ensuite ...

Voila un bel exemple : Les pointeurs en C, il y en a en C++ mais c'est beaucoup plus parlant.
En C, les allocations de mémoire sont très compliqué à gérer car le langage est bas niveau. Le C++ est plus haut niveau est plus explicite donc plus simple. J'en démordrai pas lol
houlala que des erreurs !
Tu peux très bien créer un fichier .cpp qui autorisera donc la syntaxe C++ et faire un programme en C sans classes,créer des pointeurs, appeler directement la mémoire...
il est parfaitement possible de faire ça avec tout une hiérarchie de classes héritées ou non...
ensuite en C les allocations mémoires ne sont pas plus compliqués à gérer en C,la seule différence visible c'est qu'il faut faire un cast avec malloc() qui ne se fait pas avec new().
Le C++ peut parfaitement être bas-niveau aussi rien ne t'empêche de créer un pointeur qui repose sur rien et avoir une exception ou un plantage système...


Citation:
Envoyé par sylvain230 Voir le message
Voila un bel exemple : Les pointeurs en C, il y en a en C++ mais c'est beaucoup plus parlant.
l
la différence entre C et C++ c'est l'introduction des alias les références.
Mais sinon pas de différences un pointeur reste un pointeur en C++...
il y a des bibliothèques qui permettent les smart pointers comme Boost (pas certain mais certainement ) Active Template Library de Microsoft en C++
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/11/2011, 18h02   #372
Autodidacte xp
Nouveau Membre du Club
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 30
Points : 30
Par défaut Pourquoi ne pas commencer par le C?

Je me demande si cette discussion pourra prendre fin un jour car les avis sont extrêmement opposés.
Qu'y a t-il de mal à apprendre le C pour mieux comprendre le fonctionnement de la machine et ensuite s'attaquer au fameux C++ langage orienté-objet, PLUS vaste et plus complexe comme si on avait carrément affaire à un nouveau langage ( pour éviter les pièges du genre sur-ensemble du C et consort)!
Autodidacte xp est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 25/11/2011, 18h49   #373
Luc Hermitte
Expert Confirmé Sénior

 
Avatar de Luc Hermitte
 
Inscription : août 2003
Messages : 4 522
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 4 522
Points : 5 730
Points : 5 730
Citation:
Envoyé par Mat.M Voir le message
la différence entre C et C++ c'est l'introduction des alias les références.
C'est surtout le RAII la différence. Le "petit" truc qui fait que la gestion des cas non nominaux n'a rien à voir d'un langage à l'autre. Et que la gestion de la mémoire en C++ peut facilement être à des parsecs de celle en C.
Mais bon, ce n'est pas comme si le sujet n'avait pas déjà été abordé dans les 20 dernières pages
[Je m'en tiens au sujet de la mémoire qui semblait être le contexte de votre échange]

Citation:
Envoyé par Autodidacte xp Voir le message
Je me demande si cette discussion pourra prendre fin un jour car les avis sont extrêmement opposés.
C'est surtout qu'il y aura régulièrement des gens avec une vision partielle d'un ou des deux langages pour venir réveiller le troll.
Citation:
Envoyé par Autodidacte xp Voir le message
Qu'y a t-il de mal à apprendre le C pour mieux comprendre le fonctionnement de la machine et ensuite s'attaquer au fameux C++ langage orienté-objet, PLUS vaste et plus complexe comme si on avait carrément affaire à un nouveau langage ( pour éviter les pièges du genre sur-ensemble du C et consort)!
C'est une question sérieuse ? C -> C++ ?
Relis le fil. La réponse a été donnée plusieurs fois.
Pour faire court: non. Un apprentissage du C met systématiquement de côté la partie difficile : écrire du code robuste. Le code scolaire enseigné est souvent simple et plein de failles, et du coup un faux sentiment de sécurité, voire de compréhension, et donc de mauvaises habitudes sont prises pour la suite. (hint: realloc ; test systématique des tous les codes de retour de fonctions ; ... Vous avez vu ça en cours ? Et non!)
La première étape c'est et ce sera toujours l'algo.

Bref, relisez TOUT le fil avant de repartir pour un tour !
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média.
Luc Hermitte est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/11/2011, 18h22   #374
Autodidacte xp
Nouveau Membre du Club
 
Homme
Inscription : novembre 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 36
Points : 30
Points : 30
Par défaut Voici la vraie question qui avait été posée, ne l'oublion pas!

De toute façon Voici la vraie question qui avait été posée, ne l'oublions pas!
Pourrons nous répondre objectivement à cette question, sinon tout le reste ne seront que des détails sur lesquels les avis divergerons toujours!

Citation:
Envoyé par strategos Voir le message
Bonjour à tous
J'aimerais apprendre la prog en C ou C++ mais je ne sais pas quel langage choisir (ils ont peu de différence parait-il). Je souheterais faire de la programmation réseau et de la prog sur Linux. Voila merci de tous vos conseils à venir @+
Autodidacte xp est déconnecté   Envoyer un message privé Réponse avec citation 13
Vieux 28/11/2011, 13h20   #375
Luc Hermitte
Expert Confirmé Sénior

 
Avatar de Luc Hermitte
 
Inscription : août 2003
Messages : 4 522
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2003
Messages : 4 522
Points : 5 730
Points : 5 730
Question qui date de 2002 (bientôt 10ans), par quelqu'un qui n'est intervenu que 2 fois sur les forums de dvpz -- OK, ses autres interventions peuvent avoir être délestées.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média.
Luc Hermitte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 15h04   #376
sarra22
 
Femme Sarra Olivier
Développeur en systèmes embarqués
Inscription : décembre 2012
Messages : 1
Détails du profil
Informations personnelles :
Nom : Femme Sarra Olivier
Localisation : France

Informations professionnelles :
Activité : Développeur en systèmes embarqués
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2012
Messages : 1
Points : -4
Points : -4
Bonjour,
je trouve que la programmation orienté objet c++ c'est meilleur pour développement
sarra22 est déconnecté   Envoyer un message privé Réponse avec citation 08
Vieux 07/02/2013, 21h04   #377
acx01b
Membre éclairé
 
Étudiant
Inscription : décembre 2004
Messages : 348
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2004
Messages : 348
Points : 366
Points : 366
personnellement, je suis catégorique,

sauf si tu as un niveau développeur professionnel, ce qui parait peut probable car en général les développeurs professionnels maîtrisent le C et le C++,

alors étudie d'abord le C, pointeurs, récursivité, allocation mémoire, structures de données

puis fais le langage que tu veux, de toute façon apprendre un nouveau langage ne te posera aucun problème si tu maîtrises le C.


La réciproque avec C++ n'est pas vraie, à moins que tu maîtrises en plus des aspects spécifiques à C++ toute la partie C, langage qui est inclus dans C++.
Donc ça reste la même idée : maîtriser C, que ce soit avec un compilateur C ou C++, ça ne change rien.

Juste une dernière chose : je ne vois pas l'intérêt pour un étudiant en informatique d'étudier les aspects spécifiques à C++ en même qu'étudier le C, tout simplement parce que un étudiant ne comprendra pas en détail ces aspects spécifiques à C++ avant d'avoir maîtrisé le C (les pointeurs, la récursivité, l'allocation mémoire, les structures de données)


voila pourquoi l'immense majorité des cursus en école/université de programmation (et pas d'informatique théorique ou je sais pas quoi !) commencent ou font au plus tard au 2ème semestre de la 1ère année des cours intensifs de C (les pointeurs, la récursivité, l'allocation mémoire, les structures de données)

il y a-t-il un prof de programmation 1ère année qui va me contredire ?
acx01b est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 08/02/2013, 08h01   #378
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 168
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 168
Points : 17 962
Points : 17 962
Citation:
Envoyé par acx01b Voir le message
il y a-t-il un prof de programmation 1ère année qui va me contredire ?
Je ne suis pas prof, mais oui, je vais te contredire

Tout d'abord si, comme tu le dis, le C++ etait un sur-ensemble du C, cela voudrait dire qu'en apprenant le C++, tu connaitrais le C, ce qui n'est pas le cas (d'ailleurs, le C++ n'est pas un sur-ensemble du C).

Ensuite, apprendre a bien programmer en C est vraiment different de l'apprentissage correct du C++. Dans les deux cas il est necessaire d'apprendre la gestion de la memoire, mais la programmation par references par exemple, ou les templates, sont autant de specificites propres au C++ qui ne sont pas facilement realisables en C.

Bref, pour moi, il y a deux langages distincts, proches syntaxiquement a l'origine, mais qui ont beaucoup diverges depuis, et qui surtout n'ont pas le meme usage.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 27/02/2013, 23h28   #379
dragonno
Membre éprouvé
 
Inscription : janvier 2009
Messages : 582
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 582
Points : 487
Points : 487
Je plussoie avec gangsoleil.

J'ai eu à choisir moi aussi entre C et C++ et j'ai vu ces différences, ce qui m'a conduit à choisir le C pour plus tard aller vers le C++.

PS: Anna... c'est C++ que tu voulais dire dans un de tes posts^^ :
Citation:
Dans un deuxième temps, attaque toi à du C
dragonno est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h26.


 
 
 
 
Partenaires

Hébergement Web