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

  1. #221
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    On parle beaucoup de langage, mais peu de développement.
    Il y a eu une petite tentative hier, qui consistait à mettre les choses sur la table (je parle de copies d'écran par exemple) le suggestion n'a pas été relevée.

    Par ailleurs, un objet est un ensemble d'éléments divers groupés sous une seule identité, une classe. Si cette affirmation est juste, je voudrais bien qu'on m'explique comment on peut comparer deux objets. Soit ils sont identiques, et donc il y en a un de trop, soit ils des caractères communs, ou semblables ou pareils,
    Soit, enfin, ils ont deux origines distinctes, et il est intéressant de pouvoir déterminer qu'ils représentent une valeur commune.


    alors on pourra écrire des fonctions comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Quelconque
    {
      ...
      float Longueur();
      float Aire();
      bool IsMemeLongueur(Quelconque &c); 
      bool IsMemeAire(Quelconque &c);
    };
    Mais que pourrait-il y avoir dans un code de surcharge de l'opérateur == ?
    Remarque : ceci n'est pas un exemple comme dans ma précédente question.
    Il s'agit tout de même de la même question, mais pas la peine de répondre sur l'exemple.
    Et je vais pourtant y répondre:

    Si l'on peut estimer que deux objets quelconques sont considérés comme identique à partir du moment où ils ont:
    1. la même position d'origine (celle à partir de laquelle sont déterminées les autres cotés)
    2. la même surface
    3. la même longueur
    4. peut être d'autres proriétés comparables, comme le nombre d'angles
    tu saura déterminer la logique à suivre pour ton opérateur ==

    Si l'une de ces données est inutile, supprime la, tout simplement

    Si tu considère que deux objets ne peuvent être identiques que s'ils se réfèrent à une même instance, compare les adresses auxquelles ils se trouvent.

    l'opérateur == est un opérateur de comparaison permettant de déterminer l'égalité éventuelle entre deux opérandes.

    A partir de là, libre à toi d'estimer, dans le cadre de ton projet, si une équivalence peut ou non être considérée comme égalité, et, dans le cas d'objets disposant d'équivalences composables (une surface identique, mais pas forcément la même longueur, ou vice versa), quelles équivalences permettront d'assurer l'égalité lors de la comparaison.

  2. #222
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Si tu considère que deux objets ne peuvent être identiques que s'ils se réfèrent à une même instance, compare les adresses auxquelles ils se trouvent.
    Dans ce cas-là (qui porte un nom : sémantique d'entité), il est préconisé de ne pas surcharger l'opérateur d'égalité du tout.
    Cf notre eeeexcellente FAQ http://cpp.developpez.com/faq/cpp/in...s#CLASS_entite .

  3. #223
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    La bonne pratique dans ce cas-là (qui porte un nom : sémantique d'entité), il est préconisé de ne pas surcharger l'opérateur d'égalité du tout.
    Cf notre eeeexcellente FAQ http://cpp.developpez.com/faq/cpp/in...s#CLASS_entite .
    héhé... aussi...

    Et comme on travaillera souvent avec des pointeurs ...

  4. #224
    Invité
    Invité(e)
    Par défaut
    Oui, "pointeurs intelligent" ... moi, je préfère me réserver le côté intelligence dans l'application, et laisser au langage le soin de traduire en code exécutable ce que j'écris en code lisible par moi et d'autres.
    Quelque soit le nom du langage, je travaille avec ce que j'ai, et je m'en contente PAR DEFINITION.
    Quand je lis "ce sera dans la prochaine version", je ne dis que j'ai bien raison de me contenter de ce que j'ai. Mon but n'est pas d'utiliser un langage mais de développer. Je comprend ceux qui cherchent à écrire ou améliorer un langage, il en faut, mais je ne pense pas que ce soient les mêmes qui sont le mieux placés pour dire aux développeurs comment ils doivent faire.

    Concernant la surcharge des opérateurs pour les classes. Il y a bien longtemps que j'ai compris que ce n'était pas vraiment utilisable pour des objets, il ne peut y avoir qu'une seule surcharge du signe == et des quantités de choses susceptibles d'être comparées. Donc, sauf cas très particuliers, je considère que c'est un gadget très satisfaisant pour l'esprit, mais pas vraiment utilisable.

  5. #225
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Oui, "pointeurs intelligent" ... moi, je préfère me réserver le côté intelligence dans l'application, et laisser au langage le soin de traduire en code exécutable ce que j'écris en code lisible par moi et d'autres.
    Je trouve moi aussi que le terme « intelligent » est plutôt malheureux, d'autant plus que, contrairement à un GC, ils font en sorte de maintenir le développeur concerné par la gestion de la mémoire : leur usage est explicite et il existe plusieurs types de pointeurs intelligents dont chacun est adapté à une situation.

    Quand je lis "ce sera dans la prochaine version", je ne dis que j'ai bien raison de me contenter de ce que j'ai. Mon but n'est pas d'utiliser un langage mais de développer. Je comprend ceux qui cherchent à écrire ou améliorer un langage, il en faut, mais je ne pense pas que ce soient les mêmes qui sont le mieux placés pour dire aux développeurs comment ils doivent faire.
    La notion de pointeur intelligent existe dans la STL depuis le début (std::auto_ptr, dont l'usage est certes déconseillé, mais il existe). Il y a aussi (et surtout) ceux de Boost (en particulier shared_ptr).
    Je ne sais pas si la dernière phrase de la citation m'est destinée, mais je prends le C++ et les pointeurs intelligents pour ce qu'ils sont : des outils.

    Concernant la surcharge des opérateurs pour les classes. Il y a bien longtemps que j'ai compris que ce n'était pas vraiment utilisable pour des objets, il ne peut y avoir qu'une seule surcharge du signe == et des quantités de choses susceptibles d'être comparées. Donc, sauf cas très particuliers, je considère que c'est un gadget très satisfaisant pour l'esprit, mais pas vraiment utilisable.
    Nous sommes d'accord qu'il faut utiliser la surcharge d'opérateur avec sagesse. De là à dire que ce n'est pas utilisable…
    Je suis bien heureux de pouvoir écrire « if(string1 == string2) ». Je suis également bien heureux que les conteneurs de la STL me garantissent un traitement optimal de mes objets en l'échange de la surcharge des opérateurs de comparaison.

  6. #226
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Quand je lis "ce sera dans la prochaine version", je ne dis que j'ai bien raison de me contenter de ce que j'ai. Mon but n'est pas d'utiliser un langage mais de développer. Je comprend ceux qui cherchent à écrire ou améliorer un langage, il en faut, mais je ne pense pas que ce soient les mêmes qui sont le mieux placés pour dire aux développeurs comment ils doivent faire.
    Pour autant que je sache, une bonne part de ceux qui participent à l'élaboration de la nouvelle norme sont eux-même des développeurs reconnus qui ont retourné le langage dans tous les sens (l'un n'empêche pas l'autre hein )

    Pour le reste des développeurs, ceux du "commun des mortels" qui ne font qu'utiliser le langage, il est possible de considérer C++ comme le "moins mauvais langage" (à défaut de le considérer comme le meilleur ) et donc d'être tout à fait conscient de certains problèmes qui, justement, seront (peut-être!!) résolus dans la nouvelle mouture.

    Ceux-là sont donc parfaitement en droit d'attendre cette nouvelle mouture avec impatience
    Concernant la surcharge des opérateurs pour les classes. Il y a bien longtemps que j'ai compris que ce n'était pas vraiment utilisable pour des objets, il ne peut y avoir qu'une seule surcharge du signe == et des quantités de choses susceptibles d'être comparées. Donc, sauf cas très particuliers, je considère que c'est un gadget très satisfaisant pour l'esprit, mais pas vraiment utilisable.
    C'est là que la notion de sémantique de valeur ou d'entité intervient.

    Certaines choses peuvent ou doivent être comparables afin, par exemple, d'en permettre un tri:

    Une chaine de caractères, par exemple, doit l'être afin de permettre de placer Alphonse Baudais avant William Sheakespear (j'hésite sur l'orthographe des deux )si le besoin s'en fait sentir.

    Il en va de même pour les vecteurs ou les matrices(au sens mathématique du terme), par exemple.

    Et, de manière générale, on peut souhaiter savoir si le contenu d'une collection d'objets correspond au contenu d'une autre, ou si un objet d'un type particulier peut être considéré comme identique à un autre (à charge pour le développeur de déterminer ce qui rend les deux objets identiques) parce que les deux ont des origines différentes.

    Ces comparaisons peuvent être effectuées avec des fonctions membres, mais on perd la possibilité d'un éventuelle réflexibilité que l'on pourrait être en droit d'attendre de la part de certains types d'objets.

  7. #227
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    Je trouve moi aussi que le terme « intelligent » est plutôt malheureux, d'autant plus que, contrairement à un GC, ils font en sorte de maintenir le développeur concerné par la gestion de la mémoire : leur usage est explicite et il existe plusieurs types de pointeurs intelligents dont chacun est adapté à une situation.
    Il me semble que c'est une question de point de vue encore ici: Soit on veut un programme où tout est sous contrôle, même la gestion mémoire, soit on délègue ça à une machine virtuelle ou à des paramètre que l'on aura laissé à l'intérieur de notre code source en fonction du langage utilisé. En d'autre terme soit on se fait confiance - à soi-même ou à nos développeurs -, soit on fait confiance en les algorithmes - qui peuvent tout à fait convenir! - sur lesquels on a ou pas la forcément main.
    Après il existe des bonnes pratiques dans certains langages qui n'ont aucun sens dans d'autre comme le RAII en C++, inapplicable en Java. Ce n'est qu'une question (mal placée, à mon sens) d'affinité avec une plateforme ou un langage.

  8. #228
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Pour la défense de la surcharge d'opérateur, je me permet de citer ce cas en java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BigDecimal price = new BigDecimal(250);
    BigDecimal tax = price.multiply( new BigDecimal(19.6) ).divide( new BigDecimal(119.6)) ;
    Un code équivalent utilisant la surcharge d'opérateur (possible en c++) serait quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BigDecimal price(250);
    BigDecimal tax = price * 19.6 / 119.6 ;
    Sans rire, c'est nettement plus lisible?

  9. #229
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    En fait, ça dépends : moi personellement en C++ j'aurais mis un constructeur explicit à un type BigDecimal , de manière à avoir plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BigDecimal tax = price * BigDecimal(19.6) / BigDecimal(119.6) ;

    C'est plus lisible que Java sans être aussi peu explicit (concernant les types impliqués) que ton exemple de C++.

    Cela dit, une meilleure solution existera (et oui dans C++0x/1x, donc pas tout de suite, mais au moins elle est prévue) : les suffix custom (par exemple ici BD pour BigDecimal) :

    BigDecimal tax = price * 19.6BD / 119.6BD ;
    Ca résoudra ce genre de probleme de syntaxe lourde a cause des casts implicites.

  10. #230
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par _skip Voir le message
    Pour la défense de la surcharge d'opérateur, je me permet de citer ce cas en java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BigDecimal price = new BigDecimal(250);
    BigDecimal tax = price.multiply( new BigDecimal(19.6) ).divide( new BigDecimal(119.6)) ;
    Un code équivalent utilisant la surcharge d'opérateur (possible en c++) serait quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BigDecimal price(250);
    BigDecimal tax = price * 19.6 / 119.6 ;
    Sans rire, c'est nettement plus lisible?
    Oui, c'est clair que c'est nettement plus lisible... Ces classes sont vraiment une plaie à utiliser en Java.

    D'un autre coté, la sémantique de ces opérateurs est assez évidente dans le contexte de l'arithmétique. C'est nettement mois évident si tu remplaces "BigDecimal" par "Triangle" ou "Dog".

  11. #231
    Invité
    Invité(e)
    Par défaut
    BigDecimal tax = price * 19.6BD / 119.6BD ;
    Ca, ça me rappelle le BasicA
    Mais si j'avais à faire une classe type BigDecimal, où le membre le plus important est le prix, je ferais quelque-chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class BigDecimal
    {
    private:
      long double PrixHT;
      int nombreU;
      int Societe;
      float LesTVA[10];
      float LesPourcentBenef[8];  
    public:
      BigDecimal(float PuHT,int U, ...);
      long double PrixTTC(...);
      long double Benef(...);
    ...
    };
    Et ... pas de surcharge d'opérateur, puisque P1 = new BigDecimal(...) et P2 = new BegDecimal(...) ne sont plus comparables.

  12. #232
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    D'un autre coté, la sémantique de ces opérateurs est assez évidente dans le contexte de l'arithmétique. C'est nettement mois évident si tu remplaces "BigDecimal" par "Triangle" ou "Dog"
    D'ou les notions de classe a semantique de valeur et de celles a semantique d'entite ... On revient a la meme chose : Le C++ donne un outil, c'est pas la faute du langage si des idiots font nimporte quoi avec ....

    Pierre Dolez >> Dune classe BigDecimal, a la vue de son nom, j'attends qu'elle represente d'une maniere speciale un nombre. Or la, il y a un dephasage entre le nom de ta classe et son role.

  13. #233
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    D'un autre coté, la sémantique de ces opérateurs est assez évidente dans le contexte de l'arithmétique. C'est nettement mois évident si tu remplaces "BigDecimal" par "Triangle" ou "Dog".
    Tu as raison, mais personnellement je ne suis pas trop d'accord avec le principe qu'il faut bannir des fonctionnalités sous prétexte qu'on peut faire des choses bizarres avec. Je préfère un langage riche dont j'utilise 50% à un langage pauvre dont j'aurai besoin de 110% .

    Je dirai que la redéfinition d'opérateur devrait le plus souvent se borner aux cas où la sémantique est justement comme tu le dis: évidente, ou tout au moins cohérente.

    Cependant, j'ai aussi vu dans un mappeur objet-relationnel en C# une approche intéressante pour construire des filtres qui utilisait une syntaxe de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //filtrer toutes les factures terminées de plus de 100E faites par le client Dupont 
    Filter filter = new Filter();
    filter.addCondition( OrderFields.Price > 100.0  );
    filter.addCondition( OrderFields.Status == "commited");
    filter.addCondition( OrderFields.Customer == "Dupont");
    La signature de la méthode était

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void addCondition(IPredicate);
    Ceci était rendu possible par le fait que la classe des objets Price, Status, Customer avait ses opérateurs <, >, ==, != redéfinis de telle façon à retourner un objet implémentant l'interface IPredicate.

    C'était très commode à utiliser et très lisible, même si ça cassait la sémantique réelle des opérateurs, cependant les objets Fields ne servaient qu'à cela et l'utilisateur du code ne créait pas d'instance.

  14. #234
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    C'est aussi super pratique dans boost::program_options. Certes, cela peut perturber le novice, mais ça nous fait économiser tellement de code en général...

  15. #235
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 153
    Points : 12 264
    Points
    12 264
    Par défaut
    Les C++istes qui critiquent Java mais qui ne connaissent pas l'autoboxing.
    http://lroux.developpez.com/article/..._2#Lautoboxing
    Et ça fait plus de 10 ans que je n'ai pas fait une ligne de Java.

    Pour la syntaxe des prédicats en C#, c'est encore plus lisible avec LINQ.
    Mais il ne faut pas trop essayer de se mettre à la place du compilateur, sinon c'est l'entorse de cerveau assurée. (comme les templates )

    Avant de critiquer les autres langages, commencez à les connaître pour voir ce qui y est intéressant.

  16. #236
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    D'ou les notions de classe a semantique de valeur et de celles a semantique d'entite ... On revient a la meme chose : Le C++ donne un outil, c'est pas la faute du langage si des idiots font nimporte quoi avec ....
    Dans ce cas particulier, c'est plus la notion de lisibilité du code qui me plait.

    La notion de sémantique valeur/entité ca me semble plus être une tentative de rationaliser une situation ambigüe dans le langage : "est-ce qu'on parle du contenu (valeur) ou du contenant (entité)". Situation ambigüe qui (a mon sens) existe à cause de la cohabitation pointeur/référence dans le C++

  17. #237
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Les C++istes qui critiquent Java mais qui ne connaissent pas l'autoboxing.
    http://lroux.developpez.com/article/..._2#Lautoboxing
    Et ça fait plus de 10 ans que je n'ai pas fait une ligne de Java.
    C++iste est-il synonyme d'autiste ? Ou de jésuite de très mauvaise foi ?
    C'est différent.
    Cela ne fonctionne qu'avec les types primitifs. En C++, on peut surcharger les opérations de cast quel que soit le type.

  18. #238
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Quelqu'un peut m'expliquer où il est question d'autoboxing dans les derniers posts?

  19. #239
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Situation ambigüe qui (a mon sens) existe à cause de la cohabitation pointeur/référence dans le C++
    Pourquoi ça ?

    Il me semble que c'est un aspect de conception et non de langage. En C++, on se demandera « ma classe doit-elle surcharger == ? » et en Java « ma classe doit-elle redéfinir equals() ? ».

  20. #240
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par _skip Voir le message
    Quelqu'un peut m'expliquer où il est question d'autoboxing dans les derniers posts?
    L'exemple avec BigDecimal, je pense.
    Mais il y a effectivement confusion, vu que BigDecimal n'est ni un type built-in du C++, ni un type de la lib standard.

Discussions similaires

  1. Réponses: 32
    Dernier message: 26/03/2010, 10h22
  2. Quel est pour vous le meilleur éditeur xml ?
    Par neo.51 dans le forum XML/XSL et SOAP
    Réponses: 87
    Dernier message: 20/02/2010, 20h04
  3. Quel est selon vous le plus gros flop d'Apple ?
    Par Katleen Erna dans le forum Actualités
    Réponses: 90
    Dernier message: 13/09/2009, 16h16
  4. Quel est, selon vous, le plus gros flop de Google ?
    Par Katleen Erna dans le forum Actualités
    Réponses: 14
    Dernier message: 10/09/2009, 23h35
  5. Quel est le langage de programmation le plus pertinent pour du traitement audio ?
    Par LeTouriste dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 02/11/2006, 11h42

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