URL: https://linuxfr.org/users/small_duck/journaux/le-quiz-c-de-l-ete Title: Le quiz c++ de l'été Authors: small_duck Date: 2018年08月23日T14:49:19+02:00 License: CC By-SA Tags: Score: 20 Comme c'est le mois du C++ sur LinuxFR, je vous propose ce petit quiz. Voici un petit morceau de programme, avec une hiérarchie de classe A et sa fille B, deux fonctions qui prennent un pointeur à poil ou un pointeur partagé sur A, et des appels sur ces fonctions avec des A et des B. ```C++ class A {}; class B : public A {}; void f(A*); void g(const std::shared_ptr &); int main() { auto ptr_a = new A; auto ptr_b = new B; auto shr_a = std::make_shared(); auto shr_b = std::make_shared(); f(ptr_a); f(ptr_b); g(shr_a); g(shr_b); return 0; } ``` La question est, sur ces 4 appels à la fin du main, est-ce que certains sont plus lents que d'autres, et pourquoi ? Remarque: Évidemment que dans la grande majorité des programmes, les coûts comparés d'un pointeur partagé et d'un pointeur à poil n'ont aucune importance, les problématiques d'architecture et de qualité du code étant largement prioritaires. Mais ce quiz soulève quelques points intéressants pour qui veut regarder sous le capot, et c'est pour cela que je le soumet.

AltStyle によって変換されたページ (->オリジナル) /