• [^] # Re: C'est un troll.

    Posté par . En réponse à la dépêche Mono 1.0 sous le feu des projecteurs. Évalué à 1.

    > Ce qui pose vraiment problème en C++ et qui est une erreur de conception à mon avis, c'est que le comportement des méthodes d'un objet dépend du mode de passage de celui-ci.

    Le problème est plutôt la cohabitation de deux approches et le fait que ce soit trompeur si on les mélange, mais c'est le choix de C++ : n'en privilégier aucune. On peut s'efforcer :
    - quand on fait de l'objet de n'avoir que du virtual (sans se poser de question) et de n'accéder aux objets que par pointeur ou référence, « à la Java », c'est assez naturel dans une sémantique d'identité
    - quand on fait de la sémantique de valeur, utiliser les objets directement ou des références constantes.

    C'est vrai qu'une solution plus propre serait d'avoir une différence de nature entre ces deux catégories. Difficile de juger de la pertinence des choix quand les premiers éléments de C++ étaient vraiment envisagés comme de futures extensions de C. Je trouve quand même un peu fort de parler d'erreur de conception : tout le monde s'accorde sur la syntaxe pénible et l'héritage lourd dans l'évolution de C++, mais l'essentiel (pour ce langage et avec ses objectifs) est de permettre un paradigme quitte à ce que le fait d'en permettre plusieurs apparaisse bancal quand on n'en considère qu'un seul.