Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > Puissance du C++ ou celle du C? > Lecture du sujet

Puissance du C++ ou celle du C?

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1  2  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1  2  Suivante
Hors ligne Jeremie64 # Posté le 23/05/2007 à 02:17:17
Get over it !
Avatar
Groupe : Membres
Bonjour!

J'ai quelque base en C, mais j'ai des questions avant d'acheter des livres sur le C++.

Je ne veux pas un débat au risque de voir fermer le sujet. Je veux des explications car je débute

Bon, je connais commen je l'ai mentionné le C, mais pas le C++.

J'aimerais savoir si le C++ est aussi puissant que le C, permet autant de possibilité!

Y'a-t-il des OS écrit en C++??

PLus simple ou plus compliqué que le C?

Merci à tous.

Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne psychoh13 # Posté le 23/05/2007 à 04:45:03
L'esprit surpasse le corps !
Avatar
Groupe : Membres
Un seul mot : Différent.

À mon avis le C++ est aussi difficile à assimiler complètement que le C, mais une fois assimilé il devient un outil extrêmement puissant. Le problème n'est pas de savoir si tu DOIS utiliser tel ou tel langage le problème est de savoir si tu VEUX utiliser tel ou tel langage. Le C étant un langage très bas niveau il est généralement utilisé dans la programmation système (et dans la programmation des OS conjointement avec l'ASM). Le C++ a une abstraction plus forte grâce à sa couche objet et est plutôt utilisé pour les jeux vidéos.
En tous les cas, C ou C++, il est toujours bon de connaître plusieurs langages pour être plus polyvalent, mais au final c'est toi (ou ton patron) qui décidera quel langage utiliser dans quel cas.
Certains projets sont plus faciles à faire en C, d'autres en C++, d'autres en Python, d'autres en Java, ça dépend vraiment des besoins que tu exprimes, mais surtout de ton intérêt pour le langage.

¡ Psycho !
Image utilisateur
Tutoriel Programmation Mac disponible !
Meilleur langage objet : Objective-C
Meilleur langage procédural : C
Meilleure API : Cocoa
Meilleur IDE : Xcode
Meilleure plate-forme : Mac OS X
 
Hors ligne Nataniel # Posté le 23/05/2007 à 08:28:18
Avatar
Groupe : Membres
Pas grand chose à ajouter à ça sans entrer dans des détails techniques que de toute façon d'autres viendrons très vite t'expliquer si tu le demande...

ça dépend de ce que tu veux. Le C++ c'est orienté objet, le C pas. Je dirais que le C devrait être plus court à apprendre étant donné que tous les concepts du C sont repris dans le C++ qui ajoute des tas de truc (et pas que les objets) comme les flux (bien pratique), les références (euh... je confusionne encore avec les pointeurs moi...).

Au niveau difficulté, je pense pas que y ait une grosse différence. C'est juste différent dans la logique du code. Si tu sais coder en php, le c ressemblera au niveau de la logique. Si tu sais coder dans un langage orienté objet, c'est le C++ qui te rappellera des choses.
Édité le 23/05/2007 à 08:29:14 par Nataniel
 
Hors ligne asmanur # Posté le 23/05/2007 à 10:08:29
Avatar
Groupe : Membres
Citation : Pas de titre
Y'a-t-il des OS écrit en C++??

Tu te bases sur la capacité d'un langage à être capable de créer d'un OS pour faire ton choix ... ?

Pour répondre à la question, aucun OS n'est écrit dans un seul langage. La plupart des OS sont écrits avec plusieurs langages totalement différent (les langages utilisés dépendent de l'OS).

Image utilisateur

Metzgermeister ɛστι παιδοφονος
 
Hors ligne lmghs # Posté le 23/05/2007 à 10:18:04
Groupe : Membres
Le C++ est plus riche et donc plus complexe que le C => beaucoup, beaucoup plus long à maitriser. Pratiquement tout code C (mais pas tout) compile en C++.

Paradoxalement il est plus simple de faire une même chose en C++ -- vu qu'il supporte les façons plus compliquées, mais aussi des plus simples, et d'autres encores bien plus compliquées pour ne pas dire tordues.

PS: il y a 150 débats sur le sujet, en particulier sur developpez où la question des OS avait été abordée.
 
Hors ligne Nilat # Posté le 23/05/2007 à 11:33:02
Ni ici, Nilat, ni ailleurs
Avatar
Groupe : Membres
Rien n'empêche de faire un OS en ASM + C++ + autres plutôt que ASM + C + autres. Juste c'est un peu idiot puisque dans le noyau d'un OS, une énorme partie des libs standards C et C++ n'est même pas définie. new et delete ne veulent rien dire, à moins que tu les définisse... Bref tu perds un peu 80% de la praticité du truc, autant le faire en C.

Sinon y'a d'énormes projets en C++, comme KDE (car Qt est C++ only), qui marche très bien.

Pratiquement tout ce que tu peux faire en C, tu peux le faire en C++. Le C++ est un "C avec objets", donc un C étendu, avec plus de possibilités. Une partie du langage a été modifiée et ne fonctionne plus de la même façon, notamment la notion de type. C'est pour cela que des tas de gens me critiquent quand j'ose écrire "C/C++" alors que ce sont deux langages différents. Globalement, le fait qu'ils soient différents reste transparent pour le programmeur : la syntaxe n'a pas changée et les effets sont les mêmes, c'est ce qui les rend compatibles.

Ensuite c'est une question de goûts et de besoins. Si tu as besoin de ce qu'apporte le C++ que le C n'a pas, le choix est vite fait. Si tu ne maîtrise pas ces concepts du C++, c'est pareil, t'as pas trop le choix.

Le C++ est plus compliqué que le C dans le sens où il apporte des outils plus évolués (le polymorphisme) demandant une certaine rigueur, ayant leurs propres règles et leurs pièges. Mais, comme Imghs le dit si bien, cette complexité accrue des outils permet parfois d'écrire plus simplement des trucs très compliqués.

J'ai d'ailleurs cette impression en faisant parfois du C d'être brimé, de faire du code instable. Faut dire sans constructeur et destructeur, c'est toujours un peu risqué. Sans le polymorphisme, c'est très vite chiant à mourir de coder des listes. Etc... Mais bon, ça marche aussi.
Hors ligne SiMonkey # Posté le 23/05/2007 à 15:46:45
IVe internationale !
Avatar
Groupe : Membres
Tant que tu restes dans les applis, le C++ va permettre de clarifier ton code et simplifier son utilisation grace aux classes par exemple... Depuis que j'en fait, je trouve le C lourd, rempli, etc... Mais ce n'est que mon impression, je ne connais ni le C ni le C++ à fond :)
Mais même si le C est assez vieux, il reste 'à jour' (C99). Le C++ n'est donc pas à être considéré comme une nouvelle version du C, mais un language à part entière ;)

Citation : Marx
Les philosophes n'ont fait qu'interpréter diversement le monde, il s'agit maintenant de le transformer.
 
Hors ligne Oli # Posté le 23/05/2007 à 16:13:21
C++, C++ fort que C!!!
Avatar
Groupe : Membres
Perso je préfère le C++ à peut près pour les mêmes raisons que SiMonkey.

Sinon ouai il y a un différence entre C et C++ mais C++ simplifie bien souvant la tache ;) .

Oli- Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre - Linus Torvalds
XHTML/CSS - PHP/SQL - JS - C++ - Batch - N++ - FF - C::B - The Gimp - Blender
Mon nouveau blog, en exclusivité :D !!!
 
Hors ligne GuilOooo # Posté le 23/05/2007 à 17:42:52
PriPrOTtTt§!!!§
Avatar
Groupe : Membres
Citation

Le C++ est un "C avec objets"

C'est un peu court je trouve. D'ailleurs c'est une erreur de faire croire ça au débutants. Encore, si tu connaît le C++, que tu dises ça, tu te comprends, mais le C++ n'est pas que du C avec des objet, il y a aussi la SL, la STL, les modèles, les références [....]. Faire du C++ sans exploiter tout ça, c'est un peu bête.

Sinon, tu veux faire quoi en C++ ?

Ma série d'articles « Paradigmes » : Intro - Impératif
OpenCola, la seule boisson open-source au monde !
 
Hors ligne Jeremie64 # Posté le 23/05/2007 à 22:11:16
Get over it !
Avatar
Groupe : Membres
Vu que je connais le C et pas le C++, je cherche à comprendre les différences entre ces DEUX langages.

Je sais qu'il est possible de faire X chose avec du C et de le faire avec du C++, mais peut-etre une méthode sera plus efficace..


Et, juste pour savoir, y'a des noyaux codés en ASM et C++(+ autres...)??

Bye et merci à tous.

Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne SiMonkey # Posté le 23/05/2007 à 22:15:30
IVe internationale !
Avatar
Groupe : Membres
oui :)
cf. tuto pour le faire (faut quand même être motivé) :
http://www.osdever.net/tutorials/pdf/cpp_kernel.pdf

edit : trompé de lien xD
Édité le 23/05/2007 à 22:15:55 par SiMonkey

Citation : Marx
Les philosophes n'ont fait qu'interpréter diversement le monde, il s'agit maintenant de le transformer.
 
Hors ligne Jeremie64 # Posté le 23/05/2007 à 22:25:19
Get over it !
Avatar
Groupe : Membres
Merci!

Tu as d'autre liens?

Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne SiMonkey # Posté le 23/05/2007 à 22:27:37
IVe internationale !
Avatar
Groupe : Membres
j'ai juste recherché "kernel C++" sur google :p

Citation : Marx
Les philosophes n'ont fait qu'interpréter diversement le monde, il s'agit maintenant de le transformer.
 
Hors ligne Jeremie64 # Posté le 23/05/2007 à 22:29:58
Get over it !
Avatar
Groupe : Membres
AH!

Merci

Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne Nilat # Posté le 24/05/2007 à 12:43:17
Ni ici, Nilat, ni ailleurs
Avatar
Groupe : Membres
Citation : GuilOooo
Citation

Le C++ est un "C avec objets"

C'est un peu court je trouve. D'ailleurs c'est une erreur de faire croire ça au débutants. Encore, si tu connaît le C++, que tu dises ça, tu te comprends, mais le C++ n'est pas que du C avec des objet, il y a aussi la SL, la STL, les modèles, les références [....]. Faire du C++ sans exploiter tout ça, c'est un peu bête.

C'est un fait historique que le C++ était à l'origine un C avec objets. Les références sont nécéssaires à l'objet pour la sémantique de valeur. Le coté polymorphique est une force de ce langage qui s'ajoute à l'objet d'une bien belle façon. La SL et la STL ne sont que des libs, ça ne constitue pas le langage en lui même.

Si tu préfère, je peux redire ça en plus propre :
Le C++ est un C polymorphique avec objets.

Avec ce qui est dit précédemment, ça englobe tout ce qu'il apporte.
Accompagné de la SL et de la STL, il est presque complet et fournit de bons outils en standard le démarquant nettement de son prédécesseur.
Édité le 24/05/2007 à 12:46:14 par Nilat
Hors ligne lmghs # Posté le 24/05/2007 à 23:21:02
Groupe : Membres
Le "C with classes", cela remonte. Depuis le C++ a gagné quelques paradigmes : dont en particulier la généricité. Cette autre rupture avec le C n'est pas du tout anodine, elle est tout aussi importante que l'arrivée de la POO.

Regarder le C++ comme un C avec du polymorphisme d'inclusion supporté nativement, c'est regarder le C++ d'il y a 15 ans.

PS: la SL fait bien parti du langage vu qu'elle est dans la norme. Le C++ n'est pas juste des mots clés et une grammaire.
 
Hors ligne Nilat # Posté le 25/05/2007 à 00:16:26
Ni ici, Nilat, ni ailleurs
Avatar
Groupe : Membres
Ouai, c'est clair que ça remonte !
La généricité est un des aspects du polymorphisme, la surcharge aussi. Sans préciser si c'est d'inclusion ou pas, ça englobe tout.

Pour la SL, ça a beau être dans la norme, ça ne reste qu'une option, un outil dont on peut se passer. Le fait que ça ne soit qu'une lib - standard, certes - se prouve par la nécessité de placer un include pour s'en servir, comme pour toute autre lib. C'est sûr que s'en passer juste pour le trip de s'en passer, c'est complètement con, surtout vu la qualité du machin. La norme porte aussi sur la lib parce qu'il serait idiot de faire une autre norme à coté pour ça, et aussi que ça fait rentrer dans les têtes qu'on implémente pas l'un sans l'autre - en théorie - mais ça reste bien juste une lib, pas le langage.
Hors ligne lmghs # Posté le 25/05/2007 à 01:18:25
Groupe : Membres
Citation : Nilat
Ouai, c'est clair que ça remonte !
La généricité est un des aspects du polymorphisme, la surcharge aussi. Sans préciser si c'est d'inclusion ou pas, ça englobe tout.

't't! Oh la vilaine omission! On est combien ici à savoir qu'il y a 4 formes de polymorphismes qui sont supportées en C++ ? D'autant qu'une lecture au premier degré de ta précédente phrase dit tout autre chose ^^

Sinon, de la même façon que l'on peut se passer d'une bibliothèque (standard ou non), on peut se passer d'un élément du coeur du langage (objets, templates, exceptions, metaprog, ...) et faire du C89 avec un compilo C++. Au fond, ce n'est guère différent : "On prend ce que l'on veut, bien que souvent il soit idiot de se passer d'un élément qui nous simplifie la vie".
 
Hors ligne Jeremie64 # Posté le 25/05/2007 à 02:46:14
Get over it !
Avatar
Groupe : Membres
On peut créer un OS avec le C++?

Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne int21h # Posté le 25/05/2007 à 03:06:03
Groupe : Membres
J'ai une approche plus "hard", pour moi le C++ est un outil. Quand j'ai un travail à faire je choisis l'outil le mieux adapté, à la fois au travail que j'ai à faire, mais aussi à la maitrise que j'ai de l'outil. Le seul et unique objectif est de faire le travail le mieux possible, le plus vite possible. Pour moi le C++ répond à ce besoin (en grande partie grâce à l'existant en C qui peut être recyclé d'ailleurs) , Le reste est secondaire...
Connecté Artefact2 # Posté le 25/05/2007 à 07:24:33
Avatar
Groupe : Membres
Citation : xboxman
On peut créer un OS avec le C++?


Non. Ni en C d'ailleurs, tu dois impérativement le coupler à de l'ASM etc etc, j'entre pas dans les joyeusetés...
 
Hors ligne GuilOooo # Posté le 25/05/2007 à 17:31:54
PriPrOTtTt§!!!§
Avatar
Groupe : Membres
Citation

J'ai une approche plus "hard", pour moi le C++ est un outil. Quand j'ai un travail à faire je choisis l'outil le mieux adapté, à la fois au travail que j'ai à faire, mais aussi à la maitrise que j'ai de l'outil. Le seul et unique objectif est de faire le travail le mieux possible, le plus vite possible. Pour moi le C++ répond à ce besoin (en grande partie grâce à l'existant en C qui peut être recyclé d'ailleurs) , Le reste est secondaire...

Il peut y avoir d'autres facteurs importants, mais +1.

Citation


Non. Ni en C d'ailleurs, tu dois impérativement le coupler à de l'ASM etc etc, j'entre pas dans les joyeusetés...

Oui mais tu vas pas faire QUE de l'ASM non plus. L'asm c'est dans certains cas, tu vas généralement pas tout faire avec ce langage (bien que ça soit possible). Donc on peut utiliser du C, ou du C++, mais dans certains cas il faudra effectivement les substituer à l'ASM.
Par contre, pourquoi tu veux absolument savoir ça ? Tu vas écrire un OS (même pour t'entraîner) ?

Ma série d'articles « Paradigmes » : Intro - Impératif
OpenCola, la seule boisson open-source au monde !
 
Hors ligne Oli # Posté le 25/05/2007 à 19:16:32
C++, C++ fort que C!!!
Avatar
Groupe : Membres
Il y a un OS expérimental 100% ASM je crois :p !
Donc s'il s'ennui il peut toujours faire pareil :lol: !

Oli- Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre - Linus Torvalds
XHTML/CSS - PHP/SQL - JS - C++ - Batch - N++ - FF - C::B - The Gimp - Blender
Mon nouveau blog, en exclusivité :D !!!
 
Hors ligne int21h # Posté le 25/05/2007 à 20:09:13
Groupe : Membres
Citation : Oli
Il y a un OS expérimental 100% ASM je crois :p !
Donc s'il s'ennui il peut toujours faire pareil :lol: !


Effectivement, il y a un OS expérimental 100% assembleur MenuetOS
Hors ligne Jeremie64 # Posté le 25/05/2007 à 21:30:43
Get over it !
Avatar
Groupe : Membres
Non, juste pour savoir!

Merci à tous.

Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne saphir # Posté le 27/05/2007 à 21:57:25
Le soft c hard
Avatar
Groupe : Membres
Pour moi qu'un zéro écrive un OS (pas un truk qui sait afficher "hello world!!" en console sans l'aide d'un OS) est une abération!
Zéro ça veut bien dire ce que ça veut dire.
On n'est plus au temps ou il suffisait d'être un génie (et pas un zéro) de l'informatique pour créer un OS.
Donc ZerO.S. n'est pas prêt de sortir.

POur en revenir au sujet moi je pratique le C et le C++ ça me permet de voir deux types d'approches différentes : l'approche fonctionnelle EDIT: impérative et l'approche objet. Les deux langages se complètent bien et avant d'entamer un projet je choisi en quel langage je vais le coder.

Sache que quel que soit le langage que tu choisis il est très difficile de le maitriser.
Édité le 27/05/2007 à 22:36:05 par saphir
 
Hors ligne Kevin Leonhart # Posté le 27/05/2007 à 22:03:05
Avatar
Groupe : Membres
Citation : saphir
je pratique le C et le C++ ça me permet de voir deux types d'approches différentes : l'approche fonctionnelle et l'approche objet.

Je crois qu'il y a lapsus.
Le C est plutôt (que dis-je ? Complètement) impératif.
La définition de la programmation fonctionnelle : http://fr.wikipedia.org/wiki/Programmation_fonctionnelle

"Je vous emmerde, et je rentre à ma maison."
Eric Cartman, philosophe.
 
Hors ligne tenmaCA # Posté le 27/05/2007 à 22:04:00
XD
Groupe : Membres
Personellement j'ai coder sur different projet ou il etait demande de coder en C ou C++. Certain projet sont plus simple a coder en C d'autre en C++.
Tout depend du butte et de la gestion du projet.
Je prefere le C car les il est plus bas niveau que le c++.

Charge total Unreal-server
Serveur dédié, serveur web, backup, mysql calcul total des données transmise vers le FAI
Image utilisateur
 
Hors ligne saphir # Posté le 27/05/2007 à 22:39:43
Le soft c hard
Avatar
Groupe : Membres
Kevin Leonhart << c'est corrigé

tenmaCA << Il est des fois impossible de coder en C++ un projet (par exemple : il n'existe aucun compilateur C++ pour Ti)
 
Hors ligne Nataniel # Posté le 28/05/2007 à 11:36:10
Avatar
Groupe : Membres
Il n'est pas interdit d'oublier l'aspect objet en C++. Par contre, c'est une peu ridicule de le faire...

Mis à part ça, j'aurais tendance à dire que plus le programme est simple, plus l'intérêt du C++ m'apparaît limité. Dire "hello World" en C++ c'est quasiment pareil qu'en C. Sauf que dans l'un tu utilises un flux et dans l'autre une fonction.

Par contre, quand le code commence à grossir et à demander de plus en plus de fonctions, les regrouper dans un objet, me paraît alors pertinent. ça évite de se perdre et ça permet d'initialiser facilement les variables qui sont liés. Et grace à l'encapsulation, on évite de provoquer des bugs en se plantant dans la gestion des variables.
 

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 519 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.041s (0.0192s)