{"id":27,"date":"2008-03-04T19:57:36","date_gmt":"2008-03-04T18:57:36","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=27"},"modified":"2008-03-15T10:35:05","modified_gmt":"2008-03-15T09:35:05","slug":"redefinition-vs-surcharge","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/","title":{"rendered":"C++ &#8211; Red\u00e9finition vs surcharge"},"content":{"rendered":"<p>La confusion entre ces deux termes existe plus en anglais (<em>overriding<\/em> vs <em>overloading<\/em>)qu&rsquo;en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu&rsquo;en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e.<br \/>\nDans les deux cas, il s&rsquo;agit d&rsquo;avoir plusieurs fonctions avec le m\u00eame nom.<br \/>\nPrenons l&rsquo;exemple d&rsquo;une classe de base <em>Base<\/em> qui poss\u00e8de deux fonctions <em>f()<\/em> et <em>g()<\/em> dont l&rsquo;une est virtuelle.<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">class<\/span> Base\r\n{\r\n  <span class=\"reservedname\">public<\/span>:\r\n    <span class=\"reservedname\">void<\/span> f();\r\n    <span class=\"reservedname\">virtual<\/span> <span class=\"reservedname\">void<\/span> g();\r\n};<\/pre>\n<p>D\u00e9rivons maintenant une classe de notre classe <em>Base<\/em> et cr\u00e9ons dans cette classe d\u00e9riv\u00e9e une fonction qui a la m\u00eame signature que nos fonctions dans la classe Base:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">class<\/span> Derived1 : <span class=\"reservedname\">public<\/span> Base\r\n{\r\n  <span class=\"reservedname\">public<\/span>:\r\n    <span class=\"reservedname\">void<\/span> f();            <span class=\"codecomment\">\/\/ Red\u00e9finit Base::f()\r\n<\/span>    <span class=\"reservedname\">virtual<\/span> <span class=\"reservedname\">void<\/span> g();    <span class=\"codecomment\">\/\/ Red\u00e9finit Base::g()\r\n<\/span>};<\/pre>\n<p>La m\u00eame signature signifie que la fonction a le m\u00eame nom et les m\u00eames param\u00e8tres que la fonction originale. C&rsquo;est bien le cas ici. <em>f()<\/em> et <em>g()<\/em> ont bien le m\u00eame nom et les m\u00eames param\u00e8tres (ou abscence de param\u00e8tre). Notez que pour avoir la m\u00eame signature qu&rsquo;une fonction virtuelle, la fonction doit aussi \u00eatre virtuelle ce qui est bien le cas ici. La fonction h\u00e9rite de la classe de base son caract\u00e8re virtuel et donc, le <em>virtual<\/em> devant la fonction pourrait \u00eatre omis. Cependant, c&rsquo;est une bonne pratique que de le mettre ne fut-ce que pour des raisons de code bien document\u00e9.<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">class<\/span> Derived2 : <span class=\"reservedname\">public<\/span> Base\r\n{\r\n  <span class=\"reservedname\">public<\/span>:\r\n    <span class=\"reservedname\">void<\/span> f(<span class=\"reservedname\">int<\/span>);         <span class=\"codecomment\">\/\/ surcharge de Base::f()\r\n<\/span>    <span class=\"reservedname\">virtual<\/span> <span class=\"reservedname\">void<\/span> g(<span class=\"reservedname\">int<\/span>); <span class=\"codecomment\">\/\/ surcharge de Base::g()\r\n<\/span>};<\/pre>\n<p>Si comme dans notre classe <em>Derived2<\/em>, le nom est le m\u00eame mais que la signature est diff\u00e9rente, on parle de surcharge de fonction.<br \/>\n<strong> Attention:<\/strong> dans le cas de <em>Derived2<\/em>, les deux fonctions <em>f()<\/em> et <em>g()<\/em> non seulement surchargent les deux fonctions <em>f()<\/em> et <em>g()<\/em> de <em>Base<\/em> mais en plus elles les cachent. Ce qui veut dire que <em>f()<\/em> et <em>g()<\/em> de <em>Base<\/em> ne sont plus accessibles. Par exemple, vous ne pouvez plus \u00e9crire ceci:<\/p>\n<pre class=\"codesource\">\r\nDerived2 d2;\r\nd2.f();                  <span class=\"codecomment\">\/\/ erreur Base::f() est cach\u00e9e\r\n<\/span><\/pre>\n<p>L&rsquo;erreur donn\u00e9e par <em>g++<\/em> est l&rsquo;erreur: <code>no matching function for call to Derived2::f()<\/code><\/p>\n<p>Si vous tenez \u00e0 pouvoir utiliser la fonction <em>f()<\/em> dans la classe de base malgr\u00e9 le fait que la surcharge de cette fonction cache la fonction <em>f()<\/em> dans <em>Base<\/em>, vous devez r\u00e9\u00e9crire votre classe <em>Derived2<\/em> de cette fa\u00e7on:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">class<\/span> Derived2 : <span class=\"reservedname\">public<\/span> Base\r\n{\r\n  <span class=\"reservedname\">public<\/span>:\r\n    <span class=\"reservedname\">using<\/span> Base::f;       <span class=\"codecomment\">\/\/ permet d'utiliser Base::f()\r\n<\/span>    <span class=\"reservedname\">void<\/span> f(<span class=\"reservedname\">int<\/span>);         <span class=\"codecomment\">\/\/ surcharge de Base::f()\r\n<\/span>    <span class=\"reservedname\">virtual<\/span> <span class=\"reservedname\">void<\/span> g(<span class=\"reservedname\">int<\/span>); <span class=\"codecomment\">\/\/ surcharge de Base::g()\r\n<\/span>};<\/pre>\n<p>La clause <em>using<\/em> vous permet de l&rsquo;utiliser en sp\u00e9cifiant au compilateur qu&rsquo;il s&rsquo;agit de la fonction pr\u00e9sente dans la classe de base.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu&rsquo;en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu&rsquo;en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu&#039;en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu&#039;en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Michel Leunen\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Autour de Linux | Ubuntu, linux, C++, audio, python, ...\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"C++ \u2013 Red\u00e9finition vs surcharge | Autour de Linux\" \/>\n\t\t<meta property=\"og:description\" content=\"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu&#039;en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu&#039;en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2008-03-04T18:57:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2008-03-15T09:35:05+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"C++ \u2013 Red\u00e9finition vs surcharge | Autour de Linux\" \/>\n\t\t<meta name=\"twitter:description\" content=\"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu&#039;en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu&#039;en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#article\",\"name\":\"C++ \\u2013 Red\\u00e9finition vs surcharge | Autour de Linux\",\"headline\":\"C++ &#8211; Red\\u00e9finition vs surcharge\",\"author\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\"},\"datePublished\":\"2008-03-04T19:57:36+02:00\",\"dateModified\":\"2008-03-15T10:35:05+02:00\",\"inLanguage\":\"fr-FR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#webpage\"},\"articleSection\":\"C++\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.leunen.com\\\/linux\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/c\\\/#listItem\",\"name\":\"C++\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/c\\\/#listItem\",\"position\":2,\"name\":\"C++\",\"item\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/c\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#listItem\",\"name\":\"C++ &#8211; Red\\u00e9finition vs surcharge\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#listItem\",\"position\":3,\"name\":\"C++ &#8211; Red\\u00e9finition vs surcharge\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/category\\\/c\\\/#listItem\",\"name\":\"C++\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\",\"name\":\"Autour de Linux\",\"description\":\"Ubuntu, linux, C++, audio, python, ...\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/\",\"name\":\"Michel Leunen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/41e08d5087493eaa9ce4ebd4e0a55ffb?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Michel Leunen\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#webpage\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/\",\"name\":\"C++ \\u2013 Red\\u00e9finition vs surcharge | Autour de Linux\",\"description\":\"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu'en fran\\u00e7ais. N\\u00e9anmoins il est int\\u00e9ressant de rappeler les diff\\u00e9rences entre ces deux termes et leurs particularit\\u00e9s surtout lorsque cela concerne des fonctions membres et qu'en plus, la red\\u00e9finition ou la surcharge se fait dans une classe d\\u00e9riv\\u00e9e. Dans les deux cas, il\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/2008\\\/03\\\/redefinition-vs-surcharge\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/author\\\/michel-leunen\\\/#author\"},\"datePublished\":\"2008-03-04T19:57:36+02:00\",\"dateModified\":\"2008-03-15T10:35:05+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#website\",\"url\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/\",\"name\":\"Autour de Linux\",\"description\":\"Ubuntu, linux, C++, audio, python, ...\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.leunen.com\\\/linux\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"C++ \u2013 Red\u00e9finition vs surcharge | Autour de Linux","description":"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu'en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu'en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il","canonical_url":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#article","name":"C++ \u2013 Red\u00e9finition vs surcharge | Autour de Linux","headline":"C++ &#8211; Red\u00e9finition vs surcharge","author":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"publisher":{"@id":"https:\/\/www.leunen.com\/linux\/#organization"},"datePublished":"2008-03-04T19:57:36+02:00","dateModified":"2008-03-15T10:35:05+02:00","inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#webpage"},"isPartOf":{"@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#webpage"},"articleSection":"C++"},{"@type":"BreadcrumbList","@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux#listItem","position":1,"name":"Home","item":"https:\/\/www.leunen.com\/linux","nextItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/c\/#listItem","name":"C++"}},{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/c\/#listItem","position":2,"name":"C++","item":"https:\/\/www.leunen.com\/linux\/category\/c\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#listItem","name":"C++ &#8211; Red\u00e9finition vs surcharge"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#listItem","position":3,"name":"C++ &#8211; Red\u00e9finition vs surcharge","previousItem":{"@type":"ListItem","@id":"https:\/\/www.leunen.com\/linux\/category\/c\/#listItem","name":"C++"}}]},{"@type":"Organization","@id":"https:\/\/www.leunen.com\/linux\/#organization","name":"Autour de Linux","description":"Ubuntu, linux, C++, audio, python, ...","url":"https:\/\/www.leunen.com\/linux\/"},{"@type":"Person","@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author","url":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/","name":"Michel Leunen","image":{"@type":"ImageObject","@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/41e08d5087493eaa9ce4ebd4e0a55ffb?s=96&d=mm&r=g","width":96,"height":96,"caption":"Michel Leunen"}},{"@type":"WebPage","@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#webpage","url":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/","name":"C++ \u2013 Red\u00e9finition vs surcharge | Autour de Linux","description":"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu'en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu'en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.leunen.com\/linux\/#website"},"breadcrumb":{"@id":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/#breadcrumblist"},"author":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"creator":{"@id":"https:\/\/www.leunen.com\/linux\/author\/michel-leunen\/#author"},"datePublished":"2008-03-04T19:57:36+02:00","dateModified":"2008-03-15T10:35:05+02:00"},{"@type":"WebSite","@id":"https:\/\/www.leunen.com\/linux\/#website","url":"https:\/\/www.leunen.com\/linux\/","name":"Autour de Linux","description":"Ubuntu, linux, C++, audio, python, ...","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/www.leunen.com\/linux\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Autour de Linux | Ubuntu, linux, C++, audio, python, ...","og:type":"article","og:title":"C++ \u2013 Red\u00e9finition vs surcharge | Autour de Linux","og:description":"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu'en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu'en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il","og:url":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/","article:published_time":"2008-03-04T18:57:36+00:00","article:modified_time":"2008-03-15T09:35:05+00:00","twitter:card":"summary","twitter:title":"C++ \u2013 Red\u00e9finition vs surcharge | Autour de Linux","twitter:description":"La confusion entre ces deux termes existe plus en anglais (overriding vs overloading)qu'en fran\u00e7ais. N\u00e9anmoins il est int\u00e9ressant de rappeler les diff\u00e9rences entre ces deux termes et leurs particularit\u00e9s surtout lorsque cela concerne des fonctions membres et qu'en plus, la red\u00e9finition ou la surcharge se fait dans une classe d\u00e9riv\u00e9e. Dans les deux cas, il"},"aioseo_meta_data":{"post_id":"27","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 07:32:55","updated":"2025-06-23 20:39:03","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.leunen.com\/linux\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.leunen.com\/linux\/category\/c\/\" title=\"C++\">C++<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tC++ \u2013 Red\u00e9finition vs surcharge\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.leunen.com\/linux"},{"label":"C++","link":"https:\/\/www.leunen.com\/linux\/category\/c\/"},{"label":"C++ &#8211; Red\u00e9finition vs surcharge","link":"https:\/\/www.leunen.com\/linux\/2008\/03\/redefinition-vs-surcharge\/"}],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/27"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=27"}],"version-history":[{"count":0,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/27\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}