{"id":1962,"date":"2015-04-08T17:06:48","date_gmt":"2015-04-08T17:06:48","guid":{"rendered":"http:\/\/anthroponaute.fr\/blog-informatique\/?p=1962"},"modified":"2015-04-10T14:19:54","modified_gmt":"2015-04-10T14:19:54","slug":"recapitulatif-du-langage-c","status":"publish","type":"post","link":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/?p=1962","title":{"rendered":"R\u00e9capitulatif C++"},"content":{"rendered":"<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/02\/C-unofficial.sh-600x600.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-92\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/02\/C-unofficial.sh-600x600.png\" alt=\"C++-unofficial.sh-600x600\" width=\"245\" height=\"245\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2015\/02\/C-unofficial.sh-600x600.png 600w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2015\/02\/C-unofficial.sh-600x600-150x150.png 150w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2015\/02\/C-unofficial.sh-600x600-300x300.png 300w\" sizes=\"(max-width: 245px) 100vw, 245px\" \/><\/a><\/p>\n<p><strong>Intro :<\/strong><\/p>\n<p>Le langage C++ est le langage le plus utilis\u00e9 dans le monde du d\u00e9veloppement de jeu-vid\u00e9o.<\/p>\n<p>Ce petit tutoriel \u00e0 pour but de vous faire r\u00e9viser certaines notions de C++.<\/p>\n<p><strong>Pr\u00e9requis :<\/strong><\/p>\n<p>\u2013 Avoir quelques notions de C++<\/p>\n<p><strong>Explications :<\/strong><\/p>\n<p>Le C++ est un langage orient\u00e9 objet. C&rsquo;est-\u00e0-dire que l&rsquo;on manipule des <strong>objets<\/strong> en d\u00e9clarant des <strong>classes<\/strong> au sein du code.<\/p>\n<p><span style=\"text-decoration: underline;\">Qu&rsquo;est-ce qu&rsquo;une d\u00e9claration de fonction \/ classe ?<br \/>\n<\/span><\/p>\n<p>Une <strong>d\u00e9claration<\/strong> indique l&rsquo;identificateur d&rsquo;une variable et sa nature (c&rsquo;est-\u00e0-dire respectivement son nom et sa nature).<\/p>\n<p><span style=\"text-decoration: underline;\">Qu&rsquo;est-ce qu&rsquo;une d\u00e9finition de fonction \/ classe ?<\/span><\/p>\n<p>Une <strong>d\u00e9finition<\/strong> impl\u00e9mente la structure d&rsquo;une fonction ou d&rsquo;une classe afin de pouvoir l&rsquo;utiliser.<\/p>\n<p><span style=\"text-decoration: underline;\">Commentaires :<\/span><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n\/* Ceci est un commentaire\r\nsur plusieurs lignes *\/\r\n\r\n\/\/ Ceci est un commentaire en une seule ligne\r\n\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Qu&rsquo;est-ce qu&rsquo;une classe ?<\/span><\/p>\n<p>Une <strong>classe<\/strong> permet de regrouper dans une m\u00eame entit\u00e9 des donn\u00e9es et des fonctions membres (appel\u00e9es aussi m\u00e9thodes) permettant de manipuler ces donn\u00e9es.<\/p>\n<p><span style=\"text-decoration: underline;\">Cr\u00e9er un objet \u00e0 partir d&rsquo;une classe :<br \/>\n<\/span><\/p>\n<p>Les op\u00e9rateurs <strong>new<\/strong> et <strong>delete<\/strong> permettent de cr\u00e9er un objet en allouant sa quantit\u00e9 de m\u00e9moire.<br \/>\nA chaque new doit correspondre un delete, sinon il risque d&rsquo;avoir une fuite de m\u00e9moire (memory leak) !<br \/>\nL&rsquo;op\u00e9rateur <strong>delete<\/strong> appelle le constructeur \u00e0 d\u00e9truire de la classe.<\/p>\n<p style=\"text-align: justify;\"><span style=\"text-decoration: underline;\">Qu&rsquo;est-ce qu&rsquo;un objet ?<\/span><\/p>\n<p style=\"text-align: justify;\">Un objet est <strong>l&rsquo;instance<\/strong> d&rsquo;une certaine classe.<\/p>\n<p><span style=\"text-decoration: underline;\">L&rsquo;h\u00e9ritage :<\/span><\/p>\n<p>En C++, les classes peuvent h\u00e9riter d&rsquo;autres classes et la relation d&rsquo;h\u00e9ritage est exprim\u00e9e \u00e0 l&rsquo;aide de l&rsquo;op\u00e9rateur de d\u00e9rivation \u00ab\u00a0:\u00a0\u00bb.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nclass Chat : public Animal\r\n{\r\npublic:\r\nprivate:\r\n};\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">L&rsquo;encapsulation :<\/span><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nclass Sprite2D\r\n{\r\npublic:\r\n    Sprite2D();\r\n    virtual ~Sprite2D();\r\n\r\nprotected:\r\n\r\nprivate:\r\n    int m_iVariable;\r\n};\r\n<\/pre>\n<p>&#8211; les d\u00e9clarations en dessous de \u00ab\u00a0<strong>public:<\/strong>\u00a0\u00bb seront accessibles depuis n&rsquo;importe quelle fonction.<br \/>\n&#8211; en dessous de \u00ab\u00a0<strong>protected:<\/strong>\u00a0\u00bb : pareil que private mais accessible depuis les classes<br \/>\nfilles.<br \/>\n&#8211; en dessous de \u00ab\u00a0<strong>private:<\/strong>\u00a0\u00bb : accessible que depuis les fonctions de la classes.<\/p>\n<p><span style=\"text-decoration: underline;\">L&rsquo;op\u00e9rateur sizeof :<\/span><\/p>\n<p>Sert \u00e0 calculer la taille de n&rsquo;importe quel type de donn\u00e9es.<br \/>\nOn note que sizeof(char) = 1.<\/p>\n<p>sizeof(x) = 1 <em>ssi<\/em> <strong>x est un byte<\/strong>. (Un byte est la plus petite unit\u00e9 adressable d&rsquo;un ordinateur)<\/p>\n<p><span style=\"text-decoration: underline;\">Op\u00e9rateurs d&rsquo;entr\u00e9es-sorties :<\/span><\/p>\n<p>On peut \u00e9crire dans la console avec l&rsquo;instruction suivante :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n#include &lt;iostream&gt;\r\n\r\nstd::cout &lt;&lt; &quot;Une phrase.&quot; &lt;&lt; std:endl;\r\n\r\n<\/pre>\n<p>On peut \u00e9crire du code UTF-8 aussi :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n#include &lt;iostream&gt;\r\n\r\nstd::wcout &lt;&lt; &quot;Une phrase en fran\u00e7ais.&quot; &lt;&lt; std:endl;\r\n\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Les pointeurs :<\/span><\/p>\n<p>Un pointeur d\u00e9signe une adresse d&rsquo;une variable d&rsquo;un certain type.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\nint* pEntier; \/\/ D\u00e9clare un pointeur de type int\r\n\r\nint iEntier;\r\n\r\n&amp;iEntier \/\/ permet d'obtenir l'adresse de iEntier\r\n\r\npEntier = &amp;iEntier; \/\/ Affectation du pointeur\r\n\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Le r\u00e9f\u00e9rences :<\/span><\/p>\n<p>Une r\u00e9f\u00e9rence peut \u00eatre vue comme un alias d&rsquo;une variable. C&rsquo;est un \u00ab\u00a0synonyme\u00a0\u00bb d&rsquo;une autre variable. Une modification de l&rsquo;une modifiera l&rsquo;autre.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nint i = 3;\r\nint&amp; i; \/\/ Un r\u00e9f\u00e9rence \u00e0 la variable i\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Valeur par d\u00e9faut des param\u00e8tres d&rsquo;une fonction :<\/span><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\n\/\/ D\u00e9claration d'une fonction \u00e0 param\u00e8tres par d\u00e9faut\r\nvoid print(long valeur, int base = 10);\r\n\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Fonctions inline :<\/span><\/p>\n<p>Les fonction inline fonctionnent comme les macros.<\/p>\n<p><span style=\"text-decoration: underline;\">Surcharge de fonctions :<\/span><\/p>\n<p><span style=\"text-decoration: underline;\">Tas et Pile :<\/span><\/p>\n<p>Tas :<\/p>\n<p>Pile :<\/p>\n<p><span style=\"text-decoration: underline;\">Instanciation d&rsquo;une classe : <\/span><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nAvion avion; \/\/ Sur la pile\r\nAvion* pAvion = new Avion(); \/\/ Sur le tas\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Fonctions membres statiques : <\/span><\/p>\n<p>&#8211; existent m\u00eame s&rsquo;il n&rsquo;y a aucune instance de classe.<\/p>\n<p>&#8211; ne peuvent acc\u00e9der qu&rsquo;aux membres statiques de la classe.<\/p>\n<p><span style=\"text-decoration: underline;\">Exceptions :<\/span><\/p>\n<p>Moyen de g\u00e9rer les erreurs dans un programme C++.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nThrow : \/\/ Le mot-cl\u00e9 pour lever une exception.\r\n\r\n\/* Bloc try d'une gestion d'exception *\/\r\ntry\r\n{\r\n\u00a0\u00a0\u00a0 \/\/ instructions pouvant d\u00e9clencher des exceptions\r\n\u00a0\u00a0\u00a0 \/\/ d\u00e9rivant de std::exception\r\n}\r\ncatch ( const std::exception &amp; e )\r\n{\r\n\u00a0\u00a0\u00a0 std::cerr &lt;&lt; e.what();\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Intro : Le langage C++ est le langage le plus utilis\u00e9 dans le monde du d\u00e9veloppement de jeu-vid\u00e9o. Ce petit tutoriel \u00e0 pour but de vous faire r\u00e9viser certaines notions de C++. Pr\u00e9requis : \u2013 Avoir quelques notions de C++ Explications : Le C++ est un langage orient\u00e9 objet. C&rsquo;est-\u00e0-dire que l&rsquo;on manipule des objets [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/1962"}],"collection":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1962"}],"version-history":[{"count":58,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/1962\/revisions"}],"predecessor-version":[{"id":2073,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/1962\/revisions\/2073"}],"wp:attachment":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}