• [^] # Re: c++ su><or

    Posté par . En réponse à la dépêche Interview de Bjarne Stroustrup. Évalué à 2.

    Complètement faux, essaie de passer une méthode "char *foo(char *)" là où le compilo attend une méthode "void (*)(void *)" et ça ne marchera jamais

    Ben non, encore heureux (à moins de caster violemment, mais tu cours au coredump). Et ça ne marchera pas en Java ou en ObjC non plus, ni même en Ruby ou Python (tu aura une exception au runtime si tu essaies d'utiliser la méthode en question).

    Au fait, en C++ on utilise plutôt std::string que char*.

    essaie de passer un pointeur sur une attribut ou une méthode d'une surclasse à une méthode d'une sous-clase

    C'est tout à fait possible, mais pourquoi le faire ? La sous-classe a déjà accès aux méthodes et attributs de la sur-classe. Ça sent très mauvais ton truc. Passer un objet et un pointeur de méthode à une classe complètement différente (genre map()/apply()) ça par contre c'est déjà plus utile, et ça marche aussi.

    Ce sont des trucs qui sont rendus impossibles car ils rentrent en conflit avec les méchanismes objets _très_ limités du C++.

    Je ne comprends pas. Ce dont tu parles est possible, sauf l'erreur de type qui ne l'est pas pour de très bonnes raisons. Et tu dis que le C est mieux, alors que C n'a même pas ces mécanismes là.

    Quand au code aussi optimisé, je l'ai expliqué des dizaines de fois, c'est complètement faux aussi, ou en tous cas avec les compilateurs que j'ai pu tester.

    Lesquels ?