Difference C, C++

Difference C, C++ - Divers - Programmation

Marsh Posté le 25-08-2003 à 20:22:50    

hello
 
Je pense bientot me mettre a un language "haut niveau" dans le genre c.
Mais je ne connait pas vraiment la difference entre le C et le C++... J'ai juste entendu que le c++ et plus recent et s'interesse plus a ce qui est graphique, du moins c'est ce que j'ai compris  :D  
 
Alors pouvez vous m'éclairer sur c'est 2 languages : leurs differences, ce qu'on peut plus facilement faire avec l'un et pas l'autre etc...
 
merci


Message édité par Big-Foot le 25-08-2003 à 20:23:31
Reply

Marsh Posté le 25-08-2003 à 20:22:50   

Reply

Marsh Posté le 25-08-2003 à 20:24:23    

c'est un langage de bas niveau justement, tout dépend de ta definition de niveau. décalages, pointeurs,...
 
l'orienté objet avec le c++  :whistle:  

Reply

Marsh Posté le 25-08-2003 à 20:26:33    

Pour ton information, un langage bas niveau est plus proche de la machine (donc plus difficile à coder : assembleur, c). Un langage haut niveau est plus proche de l'humain (donc plus simple vb, php)
 
Comment par le C avec un bouquin, le C++ tu verras plus tard. Une chose à la fois, il ne faut pas griller les étapes


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 25-08-2003 à 20:28:31    

je vois que tu habites à Genève. Moi en VS, il y a une trps bonne librairie à Genève justement...  
 
http://www.ellipse.ch
http://www.ellipse.ch/ZASP/zdescri [...] er+langage


Message édité par jagstang le 25-08-2003 à 20:29:29

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 25-08-2003 à 23:35:34    

JagStang a écrit :

Pour ton information, un langage bas niveau est plus proche de la machine (donc plus difficile à coder : assembleur, c). Un langage haut niveau est plus proche de l'humain (donc plus simple vb, php)
 
Comment par le C avec un bouquin, le C++ tu verras plus tard. Une chose à la fois, il ne faut pas griller les étapes

Apprendre le C pour faire du C++ n'est pas une bonne idée. Ca donne envie de rester dans le concept struct + fonctions au lieu de classes. Je conseille d'attaquer direct le C++ pour partir avec les bonnes habitudes objets. Le C du C++, si c'est juste la grammaire et les boucles, ça tient dans 2 chapitres d'un bon livre C++.
 
Moi j'ai commencé par le C et j'arrive pas à me défaire des #define pour les constantes, des variables globales et autres résudus du C pratiques mais obsolètes.


---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
Reply

Marsh Posté le 25-08-2003 à 23:42:07    

le problème est que la majorité des programmmeurs C++ sont des programmeurs C. alors autant appeler un chat un chat et faire du C, surtout si on ne connait rien à l'objet. après quelqu'un muni d'un cerveau (pas le cas de tout les programmeurs) est capable de comprendre que le C++ est un langage radicalement différent qui permet néanmoins de faire tourner du code C sous certaine contrainte (pour moi de la meme façon qu'on fait tourner un bloc asm en C)
 
 
edit: pourtant ça fait un moment les les variables const existe, les variables globales, c'est pas une histoire de C, c'est de toujours, ...


Message édité par Taz le 25-08-2003 à 23:43:13
Reply

Marsh Posté le 26-08-2003 à 00:36:47    

euh si je me rappel bien les cours (ssi taz j'y suis aller en deug :p)
 
la difference entre le C et le C++ ben c'est le paradigme :D
C :imperatif
C++ : objet
 
Qu'est ce qu'on peut faire en C qu'on peut pas faire en C++ ... JOKER
 
Qu'est ce qu'on peut faire en C++ qu'on peut pas faire en C:
-de l'objet par definition   [:ffluff]  
-ne pas respecter le paradigme (c'est super facile en C++ :D)
 
Sinon comme la dis un de nos profs:
Pense a tes algos et choisit un language que tu maitrise pour coder  :jap:  
 
PS: tu peus faire autant de graphisme en C qu'en C++ si t'as les outils qui faut :p


Message édité par ffluff le 26-08-2003 à 00:37:26
Reply

Marsh Posté le 26-08-2003 à 07:22:01    

je crois que la différence est bien plus quela couche objet: si tu regarde  un code C et un code C++ faisant la même chose, à part une synthaxe proche, tu vois tout de suite que ça n'a rien du tout à voir, ou alors autant qu'avec du java
 
pour déconner on avait écrit àa
 

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. static int lexsort(const void *a, const void *b)
  5. {
  6.   return strcmp(
  7.  *(const char**)a,
  8.  *(const char**)b
  9.  );
  10. }
  11. int main(int argc, char **argv)
  12. {
  13.   int i=0;
  14.   const char * *args=malloc(argc * sizeof *args);
  15.   memcpy(args, argv, argc * sizeof *args);
  16.   qsort(args, argc, sizeof *args, lexsort);
  17.   for(i=0; i<argc; ++i)
  18.     {
  19.       printf("%s ", args[i]);
  20.     }
  21.   putchar('\n');
  22.   free(args);
  23.   return 0;
  24. }


 
 
 
puis  
 

Code :
  1. #include <algorithm>
  2. #include <iterator>
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6. using namespace std;
  7. int main(int argc, char **argv)
  8. {
  9.   vector<string> args(argv, argv+argc);
  10.   sort(args.begin(), args.end());
  11.   copy(args.begin(), args.end(), ostream_iterator<string>(cout, " " ));
  12.   cout << endl;
  13. }


 
ok, y bien des ; en fin de ligne, le même préprocesseur, mais ça s'arrete là. le C++ contient un sous-ensemble du C, mais c'est loin d'être uniquement ça. Effectivement comme différence, on citera: la couche objet, la surcharge, les templates (le point le plus important pour moi), le typage renforcé, la gestion d'erreur par exception, les références. C'est tellement différent !
 
flush > t'aurais mieux fait de rester en licence je crois ;) t'as pas du tout suivre sur les paradigmes  :D

Reply

Marsh Posté le 26-08-2003 à 07:28:15    

d'ailleurs, si c'était la même chose, on aurait pas 2 cat séparées  :whistle:  
 
je vous attends avec vos  
 
"et pourtant C++ == C "

Reply

Marsh Posté le 26-08-2003 à 10:46:32    

merci de vos reponses  :)  
 
donc language bas niveau = language proche de la machine OK
 
bon apres j'ai en gros compris que le C++ est plus orienté objet, mais pour le reste... si vous pourriez m'éclairer un petit peu parce que la je comprend pas tout :

Citation :

le paradigme, la surcharge, les templates, le typage renforcé, la gestion d'erreur par exception, les références


Message édité par Big-Foot le 26-08-2003 à 10:47:23
Reply

Marsh Posté le 26-08-2003 à 10:46:32   

Reply

Marsh Posté le 26-08-2003 à 10:49:01    

t'as toutafait raison taz.
 
mais perso, je lui conseillerai de faire un peu de C d'abord histoire de muscler le cerveau, et le C++ ensuite histoire d'affiner les muscles :D
 
en fait déjà une question interressante (hors-sujet):
 
Big-Foot>> qu'est que t'as déjà fait en prog ?
 
si tu veux te mettre à un language de haut-niveau, as-tu déjà fait du bas-niveau ? (juste pour savoir)

Reply

Marsh Posté le 26-08-2003 à 10:51:08    

Big-Foot a écrit :

merci de vos reponses  :)  
 
donc language bas niveau = language proche de la machine OK
 
bon apres j'ai en gros compris que le C++ est plus orienté objet, mais pour le reste... si vous pourriez m'éclairer un petit peu parce que la je comprend pas tout :

Citation :

le paradigme, la surcharge, les templates, le typage renforcé, la gestion d'erreur par exception, les références




 
le C++ offre une panoplie comment dirait-je, de manières d'écrires ton code, qui permet plus de robustesse, lisiblité (quoique desfois :D ;) ), réutilisation....

Reply

Marsh Posté le 26-08-2003 à 12:00:11    

Citation :

Big-Foot>> qu'est que t'as déjà fait en prog ?
 
si tu veux te mettre à un language de haut-niveau, as-tu déjà fait du bas-niveau ? (juste pour savoir)


 
pour l'instant j'ai fais et je fais du php, je suis en train de fair un site (quand j'ai le temps  :D ).
 

Citation :

le C++ offre une panoplie comment dirait-je, de manières d'écrires ton code, qui permet plus de robustesse, lisiblité (quoique desfois :D ;) ), réutilisation....


 
mais si je comprend bien en contre-partie il est plus difficile que le C ?

Reply

Marsh Posté le 26-08-2003 à 12:06:00    

pas plus difficile: il propose un plus grand niveau d'abstraction. moi j'ai plus de mal à programmer en C correctement qu'en C++

Reply

Marsh Posté le 26-08-2003 à 12:10:24    

Big-Foot a écrit :

Citation :

Big-Foot>> qu'est que t'as déjà fait en prog ?
 
si tu veux te mettre à un language de haut-niveau, as-tu déjà fait du bas-niveau ? (juste pour savoir)


 
pour l'instant j'ai fais et je fais du php, je suis en train de fair un site (quand j'ai le temps  :D ).
 

Citation :

le C++ offre une panoplie comment dirait-je, de manières d'écrires ton code, qui permet plus de robustesse, lisiblité (quoique desfois :D ;) ), réutilisation....


 
mais si je comprend bien en contre-partie il est plus difficile que le C ?


 
un fois que tu as appris à tirer parti de la panoplie c'est redoutable (comparé au C)... mais bon forcément ça se maitrise pas en un jour :D
 
à mon goût vaux mieux faire un peu de C, et ensuite le C++.
 
Le C impose d'être capable de produire du code robuste soi-même, alors que le C++ te guide à faire du code robuste.
une fois que le C est correctement maitrisé, le C++ peut glisser tout seul.


Message édité par bjone le 26-08-2003 à 12:16:10
Reply

Marsh Posté le 26-08-2003 à 12:12:02    

Taz a écrit :

pas plus difficile: il propose un plus grand niveau d'abstraction. moi j'ai plus de mal à programmer en C correctement qu'en C++


 
il sera plus dur dans le sens que d'entrée de jeu tu te tapes les concept du C (pointeur & cie) + ts les concepts du C++ (classe, heritage, tagada)
 
y'en a qui risque d'etre noyé

Reply

Marsh Posté le 26-08-2003 à 12:14:40    

c'est une bonne idée de commencer par le C à condition de ne faire que du C (travailler avec VC++ -> danger) et apres passer au C++ quand on maitrise bien et ne pas mélanger les 2

Reply

Marsh Posté le 26-08-2003 à 12:16:16    

pkoi VC++ = danger ? pour peu que tu nommes tes fichier en .c tu auras un compilo C ? (et pas le C++)

Reply

Marsh Posté le 26-08-2003 à 12:18:04    

chrisbk a écrit :

pkoi VC++ = danger ? pour peu que tu nommes tes fichier en .c tu auras un compilo C ? (et pas le C++)

on dit ça ... tu crois qu'un débutant est à ça pret ? il feraient tout pour que leur truc compile!

Reply

Marsh Posté le 26-08-2003 à 12:20:13    

Taz a écrit :

on dit ça ... tu crois qu'un débutant est à ça pret ? il feraient tout pour que leur truc compile!


 
Quelle bande de caillera ces n00b, aucun respect pour les venerables institutions pilier de notre monde de codeux

Reply

Marsh Posté le 26-08-2003 à 12:21:30    

disons que perso, ayant appris l'asm 80x86 et le C en auto-didacte, quand je suis arrivé en BTS (le temps passe), il y avait un cours de C et d'assembleur séparé.
 
je pense que pour les débutants, il serait plus judicieux de montrer le même algo en C et en ASM en même temps, la compréhension des pointeurs serait plus aisée...


Message édité par bjone le 26-08-2003 à 12:23:29
Reply

Marsh Posté le 26-08-2003 à 12:22:17    

Taz a écrit :

on dit ça ... tu crois qu'un débutant est à ça pret ? il feraient tout pour que leur truc compile!


 
:lol: j'avoues... :whistle:

Reply

Marsh Posté le 26-08-2003 à 12:23:23    

BJOne a écrit :

disons que perso, ayant appris l'asm 80x86 et le C en auto-didacte, que je suis arrivé en BTS, il avait un cours de C et d'assembleur séparé.
 
je pense que pour les débutants, il serait plus judicieux de montrer le même algo en C et en ASM en même temps, la compréhension des pointeurs serait plus aisée...


 
avec analyse du code desassemblé  
Sujet de colle : a partir du code asm de 30 pages ci dessous veuillez reecrire le code C correspondant, commentaires compris :O
Pas de l'interro de tapette ca :O

Reply

Marsh Posté le 26-08-2003 à 12:24:45    

chrisbk a écrit :


 
avec analyse du code desassemblé  
Sujet de colle : a partir du code asm de 30 pages ci dessous veuillez reecrire le code C correspondant, commentaires compris :O
Pas de l'interro de tapette ca :O


 
gni :D un peu violent quand même....
 
 

Reply

Marsh Posté le 26-08-2003 à 12:26:27    

BJOne a écrit :


 
gni :D un peu violent quand même....


 
on est la pour inculquer, pas pour rigoler :O
 
vais faire prof, moi, tiens [:meganne]

Reply

Marsh Posté le 26-08-2003 à 12:34:18    

wé mais c'est pas valable si pour chaque instruction y'a pas en commentaire le pipeline U ou V d'indiqué dans le cas d'une éxécution sur Pentium 1... (et les stalls de génération d'adresse aussi :D)
 
bon on va arrêter là, c'est pas non plus ce que je voulais dire à la base  :cry:

Reply

Marsh Posté le 26-08-2003 à 12:36:34    

BJOne a écrit :

wé mais c'est pas valable si pour chaque instruction y'a pas en commentaire le pipeline U ou V d'indiqué dans le cas d'une éxécution sur Pentium 1... (et les stalls de génération d'adresse aussi :D)
 
bon on va arrêter là, c'est pas non plus ce que je voulais dire à la base  :cry:  


 
oh mon dieu, des AGI [:totoz]
(la hantise de chaque codeux asm ca, fut un tps :D)

Reply

Marsh Posté le 26-08-2003 à 12:38:26    

a là là que de souvenirs.... (avec les tentatives pour minimizer les échecs de prédilection de branchement pour pas avoir à vider les pipes :D)
 
:lol: bon stop...
 
Big-Foot >> alors où en est tu ?

Reply

Marsh Posté le 26-08-2003 à 13:34:22    

Touze a écrit :


ok, y bien des ; en fin de ligne, le même préprocesseur, mais ça s'arrete là. le C++ contient un sous-ensemble du C, mais c'est loin d'être uniquement ça. Effectivement comme différence, on citera: la couche objet, la surcharge, les templates (le point le plus important pour moi), le typage renforcé, la gestion d'erreur par exception, les références. C'est tellement différent !


Ok je suis passer un peu rapidement sur le C++ mais je voulais faire light pour ne pas lui faire peur :D
 

Touze a écrit :


flush > t'aurais mieux fait de rester en licence je crois ;) t'as pas du tout suivre sur les paradigmes  :D  


1°) c'est fFluFf voire FluF meme ;)
2°) Y a jamais de 2 avec moi  [:ffluff]  
3°) Euh Touze le paradigme c'est en deug mais je ne t'en veus pas t'y ai pas aller souvent ;)


Message édité par ffluff le 26-08-2003 à 13:37:45
Reply

Marsh Posté le 26-08-2003 à 13:39:58    

vois le mec qui programme trop [:joce]
oui mais c'était surtout avec Psychopathe en fait [:aloy]
 
edit: ta chatte looping


Message édité par Taz le 26-08-2003 à 13:40:25
Reply

Marsh Posté le 26-08-2003 à 14:20:28    

Citation :

Qu'est ce qu'on peut faire en C++ qu'on peut pas faire en C:
-de l'objet par definition      


 
Faux justement. La programmation objet n'est pas liée à un langage objet. Ce dernier la facilite c'est tout. GTK : c'est une lib orientée objet, et pourtout elle est en C. Idem Win32.
On peut faire de la prog objet tres poussée en C (héritage, polymorphisme, fonctions virtuelles, ...). Faut être un peu mazo c'est tout.
J'ai aussi vu la généricité en C (là c'est crade par contre, a l'aide du preprocesseur).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 26-08-2003 à 14:28:43    

Taz a écrit :

vois le mec qui programme trop [:joce]


 
Euh en ce moment je fais du php et je te merde AnnieSansLesBalles  [:ffluff]  
 

HelloWorld a écrit :

Citation :

Qu'est ce qu'on peut faire en C++ qu'on peut pas faire en C:
-de l'objet par definition      


 
Faux justement. La programmation objet n'est pas liée à un langage objet. Ce dernier la facilite c'est tout.

 
Euh si on peut pas faire de l'objet avec un language objet ....
 

HelloWorld a écrit :


GTK : c'est une lib orientée objet, et pourtout elle est en C. Idem Win32.
On peut faire de la prog objet tres poussée en C (héritage, polymorphisme, fonctions virtuelles, ...). Faut être un peu mazo c'est tout.
J'ai aussi vu la généricité en C (là c'est crade par contre, a l'aide du preprocesseur).


j'ai dis le contraire ???

Citation :

Pense a tes algos et choisit un language que tu maitrise pour coder


Sous entendu le language ne doit pas te limiter.
on peut meme faire de l'objet en scheme (language fonctionnel interpreter la pluspart du temps)


Message édité par ffluff le 26-08-2003 à 14:31:38
Reply

Marsh Posté le 26-08-2003 à 16:07:34    

Citation :

Qu'est ce qu'on peut faire en C++ qu'on peut pas faire en C:
-de l'objet par definition


 
J'en déduis qu'on ne peut pas faire de l'objet en C.
 

Citation :

Euh si on peut pas faire de l'objet avec un language objet ....


Je ne crois pas avoir dis ça.
 

Citation :

j'ai dis le contraire ???


Si je me fis à la citation ci-dessus, je dirais oui ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 26-08-2003 à 19:02:15    

Donc si vous me déconseillez de commancer par le c++ sans passer par le C, c'est parce que je devrais me lancer directement dans la prog objet c'est ca ?  
Vous conseillez donc de passer un moment par le C. Mais combien de temps ? Parce que j'imagine que pour metriser un language comme le C, ca doit prendre un peu de temps...

Reply

Marsh Posté le 26-08-2003 à 19:21:02    

Big-Foot a écrit :

Donc si vous me déconseillez de commancer par le c++ sans passer par le C, c'est parce que je devrais me lancer directement dans la prog objet c'est ca ?  
Vous conseillez donc de passer un moment par le C. Mais combien de temps ? Parce que j'imagine que pour metriser un language comme le C, ca doit prendre un peu de temps...


 
Connaitre la grammaire ne veut pas dire que tu sauras parler.
 
Si tu signes c'est pour la vie !
(engagez vous qu'y disaient..)
 
LeGreg

Reply

Marsh Posté le 26-08-2003 à 21:00:44    

"c'est l'infanterie mobile qui a fait de moi l'homme que je suis devenu"
 
(Starship Troopers)


Message édité par bjone le 26-08-2003 à 21:04:21
Reply

Marsh Posté le 26-08-2003 à 22:11:21    

HelloWorld a écrit :

Citation :

Qu'est ce qu'on peut faire en C++ qu'on peut pas faire en C:
-de l'objet par definition


 
J'en déduis qu'on ne peut pas faire de l'objet en C.


 
Oups apres relecture  :jap:  
Je voulais dire : En c++ c'est plus facile de faire de l'objet  [:ffluff]

Reply

Marsh Posté le 26-08-2003 à 22:53:10    

Si tu veux un bon livre pour apprendre le C++ je te conseille "C++ from the Beginning" chez Addison Wesley (j'ai la 2e edition).
C'est celui qu'ils nous conseillent à l'unif et il est très bien fait.

Reply

Marsh Posté le 27-08-2003 à 09:52:55    

Citation :

Vous conseillez donc de passer un moment par le C


 
Ou de faire du pseudo C en C++, c.a.d du C++ sans les classes, en procédural, mais avec les string et de manière + générale la bibli du C++ et pas du C.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 27-08-2003 à 12:29:03    

ok merci  
 
je vais donc passer un petit moment sur le c avand de passer au c++

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed