IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

C++ vs C [D�bat]


Sujet :

C++

  1. #101
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par d�faut
    contrairement a ce que j'ai pu lire plus haut, on peux faire ca en C :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int main(int ac, char **av)
    {
      int c;
     
      int funk(int a, int b)
      {
         return (a+b);
      }
     
      c = funk(5,6);
     
      return 0;
    }
    la fonction funk ne sera ainsi accessible que dans le main (c'est une espece de fonction "priv�" :-).
      0  0

  2. #102
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par pada51
    contrairement a ce que j'ai pu lire plus haut, on peux faire ca en C :
    Non (mais gcc a une extension qui le permet).
      0  0

  3. #103
    Candidat au Club
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    Mai 2007
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Gabon

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par d�faut possible
    en c je crois que les objet, ou d'ailleurs leurs types sont definis par des structures et en en c++ pas les class, l avantage est que en c++ on peux utilise le polymorphisme.Peux etre j ai pas aussi compris dequoi il s agit.

    Du courage,
      0  0

  4. #104
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par djimi_roland
    en c je crois que les objet, ou d'ailleurs leurs types sont definis par des structures et en en c++ pas les class, l avantage est que en c++ on peux utilise le polymorphisme.Peux etre j ai pas aussi compris dequoi il s agit.

    Du courage,
    En fait, le mot cle class et le mot cle struct sont, exception faite de la visibilit� par d�faut des membres et foncitons membres, tout � fait �quivalents en C++

    Pour etre pr�cis, si tu ne pr�cise aucune restriction de visibilit� � l'aide des mots cle private, public ou protected, les membres d'une structure seront public alors que ceux d'une classe seront priv�s:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    struct mastruct
    {
        int i;
    };
    class maclass
    {
        int i;
    };
    int main()
    {
        mastruct s1;
        masclass c2;
        s1.i=2; //OK i est accessible car public
        c2.i=2; //ERREUR i n'est pas accessible car privé
        return 0;
    }
    A part cela, il n'y a aucune autre diff�rence entre les classes et les structures en C++

    Et tu peux tres bien impl�menter de l'h�ritage et du polymorphisme sur une structure

    Par contre ce qui est vrai, c'est que, si tu d�finis une structure en C, tu ne d�clare pas automatiquement le type correspondant, alors que la d�finition d'une structure en C++ cr�era automatiquement le type corrsepondant:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /* en C */
    struct mastruct
    {
       int i;
    };
    /* cr�ation du type */
    typedef struct mastruct montype;
    int main
    {
        mastruct s1;//erreur mastruct n'est pas un type connu
        struct mastruct s2;//ok, on signale que c'est une structure
        montype s3; //ok c'est bien un type comme int, du fait du typedef
        return 0;
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /* en C++ */
    struct mastruct
    {
        int i;
    };
    typedef mastruct montype;//cr�e tout simplement un alias
                             // (un autre nom pour repr�senter la meme chose)
    int main()
    {
        mastruct s1;//ok, mastruct est d�j� un type
        montype s2;//ok: montype==mastruct
        return 0;
    }
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog
      0  0

  5. #105
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Citation Envoy� par koala01
    En fait, le mot cle class et le mot cle struct sont, exception faite de la visibilit� par d�faut des membres et foncitons membres, tout � fait �quivalents en C++
    Il y a aussi l'h�ritage par d�faut qui change, et les mots-cl�s ne sont pas strictement equivalents, il existe au moins une exception:
    http://c.developpez.com/faq/cpp/?pag...e_class_struct
    Mais on a bien compris l'id�e
      0  0

  6. #106
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    Citation Envoy� par Jean-Marc.Bourguet
    Je ne suis pas s�r non plus que je les utiliserais. Mais pas parce qu'elles posent un probl�me, parce que je ne vois pas a priori de cas o� elles sont utiles dans ce cadre (notre moniteur avait des exceptions mais elles servaient dans des parties applicatives et pas dans ce qui aurait �t� le noyau si la d�coupe avait �t� faite ainsi). Comme dans un programme utilisateur, il faut utiliser l'outil ad�quat.
    Je reviens sur des vieux trucs, mais je ne vois pas pourquoi ne pas utiliser les exceptions dans un noyau.
    C'est plus performant que des valeurs de retour et des if/else, et c'est surtout plus robuste, surtout si utilis� avec le RAII.
      0  0

  7. #107
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par loufoque
    Je reviens sur des vieux trucs, mais je ne vois pas pourquoi ne pas utiliser les exceptions dans un noyau.
    Je n'ai pas �crit qu'il ne fallait pas les utiliser, j'ai �crit que je ne voyais pas de cas o� elles �taient utiles. Je n'ai pas une grande exp�rience en mati�re de noyaux, et l'exp�rience que j'ai est relativement vieille -- il y a plus de 10 ans -- et sp�cialis�e -- un moniteur temps r�el.

    C'est plus performant que des valeurs de retour et des if/else, et c'est surtout plus robuste, surtout si utilis� avec le RAII.
    On pourrait entrer dans un d�bat sur les cas o� les exceptions sont plus indiqu�es que les valeurs de retour et invers�ment, mais je ne crois pas que ce soit le sujet de cette discussion.

    Pour faire simple, je ne crois pas que les exceptions soient indiqu�es quand l'erreur n'implique pas d'abandonner le traitement en court, sera vraissemblablement trait�e par l'appelant imm�diat ou par quelque chose qui n'est vraissemblablement pas sur la pile d'appel actuel (l'exemple le plus simple est un autre "thread" mais le cas auquel je pense est plus compliqu� que cela, l'expliquer demanderait d'expliquer la structure de notre moniteur -- et il n'est pas sur que je me souvienne de tout ce qui est pertinent pour l'explication).
      0  0

  8. #108
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    en C on essait de refaire les mecanismes du C++, alors je ne comprends pas pourquoi il faudrait continuer en C.... (une machine avec uniquement un compilateur C ok !)

    au d�but juste les classes, constructeurs, destructeurs puis ensuite l'experience et les nouvelles techniques qu'on apprends, on en vient aux mecanismes avanc�es du C++ qu'on ne comprenait pas avant mais que d'un coup tout devient clair.
      0  0

  9. #109
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par d�faut kernel en c++
    Le kernel de Symbian OS c'est quasiement que du C++; 98% pour 2% d'assembleur sur le kernel. Il fonctionne plut�t bien.
    c vaut c++ et inversement m�me en dev systeme. va faire un UI serieux en c commence � �tre gal�re.
      0  0

  10. #110
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    J'avais entendu dire que c'�tait du C++ soit-disant �pur� mais o� manquaient un certain nombre des points forts du C++. Mais je n'ai jamais eu l'occasion de tester par moi m�me.
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.
      0  0

  11. #111
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par d�faut
    Le C est un bon language formateur mais C++ c'est programmer avec class
      0  0

  12. #112
    Membre �prouv�
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par d�faut
    En C++, on peux surd�finir les op�rateurs, je ne crois pas que ce soit possibles en C
    Ou alors difficilement
      0  0

  13. #113
    Expert �minent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retrait�
    Inscrit en
    D�cembre 2003
    Messages
    14 512
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 14 512
    Par d�faut
    Citation Envoy� par Magus (Dave)
    Je me demandais justement comment... Des exemples ? (et non, ca ne vaut pas dire que je n'y crois pas, je veux juste savoir comment on fait )
    Initiation :

    Les types abstraits de donn�es (ADT)

    Cours complet :

    http://ldeniau.web.cern.ch/ldeniau/oopc.html
      0  0

  14. #114
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    42
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Par d�faut
    Pour r�pondre � la question de d�part, � savoir d�bat sur le C vs C++, je dirai que c'est avant tout une vision de programmer.

    Si tu n'arrives pas � "pens�e objet", � mod�liser l'ensemble de ton futur programme en objet, alors soit que tu pratiques pour te forcer � tout concevoir en objet, soit que tu te diriges vers le C car tu es plut�t dans la programmation imp�rative.

    Personnellement, j'aime le C autant que le C++ . J'ai plus pratiqu� le C que le C++ mais je dois dire qu'une fois que tu as le r�flexe de voir objet, alors tu profites mieux du langage.
      0  0

  15. #115
    Membre chevronn�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    309
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 309
    Par d�faut
    Citation Envoy� par GarulfoLinux
    Pour r�pondre � la question de d�part, � savoir d�bat sur le C vs C++, je dirai que c'est avant tout une vision de programmer.

    Si tu n'arrives pas � "pens�e objet", � mod�liser l'ensemble de ton futur programme en objet, alors soit que tu pratiques pour te forcer � tout concevoir en objet, soit que tu te diriges vers le C car tu es plut�t dans la programmation imp�rative.

    Personnellement, j'aime le C autant que le C++ . J'ai plus pratiqu� le C que le C++ mais je dois dire qu'une fois que tu as le r�flexe de voir objet, alors tu profites mieux du langage.
    Je pense pas qu'on puisse dire que la programmation objet repr�sente correctement la rupture entre C et C++, en effet, on peut tr�s bien faire de la programmation 100% imp�rative en C++, et faire de la programmation objet (bon on gal�re sur l'h�ritage par contre) en C (j'adore en faire )...
    L'une des diff�rences majeures que je vois entre le C et le C++ c'est surtout le syst�me de surcharge du C++ (des op�rateurs et fonctions) qui permet de beaucoup simplifier la syntaxe, ainsi que les templates, ou encore les flux... La POO en elle-m�me ne fait pas tellement la diff�rence, mise � part l'h�ritage et le fait de mettre en une seule structure les m�thodes et les attributs.
      0  0

  16. #116
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    Bonjour � tous,

    ce d�bat poss�de une discussion similaire sur le forum g�n�ral du d�veloppement. Ce forum �tant plus appropri� pour ce d�bat, je vous invite � le poursuivre dessus. Voici l'adresse du d�bat : http://developpez.net/forums/showthread.php?t=327

    merci � vous

    hiko-seijuro
      0  0

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo