{"id":17017,"date":"2024-03-15T14:05:49","date_gmt":"2024-03-15T14:05:49","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/"},"modified":"2025-08-07T07:48:58","modified_gmt":"2025-08-07T07:48:58","slug":"what-are-the-three-ways-of-inheritance-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/","title":{"rendered":"What are the three ways of inheritance in C++?"},"content":{"rendered":"<p>In C++, there are three common ways of inheritance: public inheritance, private inheritance, and protected inheritance.<\/p>\n<ol>\n<li>Public inheritance: In public inheritance, the derived class inherits the public and protected members of the base class, while private members cannot be inherited. In public inheritance, the public members of the base class remain public in the derived class.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Base<\/span> {\r\n<span class=\"hljs-keyword\">public<\/span>:\r\n    <span class=\"hljs-type\">int<\/span> publicMember;\r\n<span class=\"hljs-keyword\">protected<\/span>:\r\n    <span class=\"hljs-type\">int<\/span> protectedMember;\r\n<span class=\"hljs-keyword\">private<\/span>:\r\n    <span class=\"hljs-type\">int<\/span> privateMember;\r\n};\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Derived<\/span> : <span class=\"hljs-keyword\">public<\/span> Base {\r\n    <span class=\"hljs-comment\">\/\/ Derived\u7ee7\u627f\u4e86Base\u7684publicMember\u548cprotectedMember<\/span>\r\n};\r\n<\/code><\/pre>\n<ol>\n<li>Private inheritance: In private inheritance, the derived class inherits the public and protected members of the base class, while private members cannot be inherited. However, unlike public inheritance, the public members of the base class become private in the derived class. Private inheritance is typically used to implement a &#8220;has-a&#8221; relationship, where the derived class gains the functionality of the base class through private inheritance but does not expose it to the outside world.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Derived<\/span> : <span class=\"hljs-keyword\">private<\/span> Base {\r\n    <span class=\"hljs-comment\">\/\/ Derived\u7ee7\u627f\u4e86Base\u7684publicMember\u548cprotectedMember\uff0c\u5e76\u5c06\u5176\u53d8\u4e3a\u79c1\u6709\u7684<\/span>\r\n};\r\n<\/code><\/pre>\n<ol>\n<li>Protected inheritance: In protected inheritance, the derived class inherits the public and protected members of the base class, while private members cannot be inherited. Similar to private inheritance, protected inheritance is often used to implement a &#8220;has-a&#8221; relationship, but in protected inheritance, the public members of the base class become protected in the derived class and cannot be accessed externally.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Derived<\/span> : <span class=\"hljs-keyword\">protected<\/span> Base {\r\n    <span class=\"hljs-comment\">\/\/ Derived\u7ee7\u627f\u4e86Base\u7684publicMember\u548cprotectedMember\uff0c\u5e76\u5c06\u5176\u53d8\u4e3a\u4fdd\u62a4\u7684<\/span>\r\n};\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In C++, there are three common ways of inheritance: public inheritance, private inheritance, and protected inheritance. Public inheritance: In public inheritance, the derived class inherits the public and protected members of the base class, while private members cannot be inherited. In public inheritance, the public members of the base class remain public in the derived [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[453,1402,299,1404,1403],"class_list":["post-17017","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-development","tag-guide","tag-programming","tag-technology","tag-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What are the three ways of inheritance in C++? - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn about what are the three ways of inheritance in c++?. Comprehensive guide with examples and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What are the three ways of inheritance in C++?\" \/>\n<meta property=\"og:description\" content=\"Learn about what are the three ways of inheritance in c++?. Comprehensive guide with examples and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T14:05:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-07T07:48:58+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"What are the three ways of inheritance in C++?\",\"datePublished\":\"2024-03-15T14:05:49+00:00\",\"dateModified\":\"2025-08-07T07:48:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/\"},\"wordCount\":199,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Development\",\"guide\",\"programming\",\"technology\",\"tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/\",\"name\":\"What are the three ways of inheritance in C++? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T14:05:49+00:00\",\"dateModified\":\"2025-08-07T07:48:58+00:00\",\"description\":\"Learn about what are the three ways of inheritance in c++?. Comprehensive guide with examples and best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What are the three ways of inheritance in C++?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What are the three ways of inheritance in C++? - Blog - Silicon Cloud","description":"Learn about what are the three ways of inheritance in c++?. Comprehensive guide with examples and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/","og_locale":"en_US","og_type":"article","og_title":"What are the three ways of inheritance in C++?","og_description":"Learn about what are the three ways of inheritance in c++?. Comprehensive guide with examples and best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T14:05:49+00:00","article_modified_time":"2025-08-07T07:48:58+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"What are the three ways of inheritance in C++?","datePublished":"2024-03-15T14:05:49+00:00","dateModified":"2025-08-07T07:48:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/"},"wordCount":199,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Development","guide","programming","technology","tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/","name":"What are the three ways of inheritance in C++? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T14:05:49+00:00","dateModified":"2025-08-07T07:48:58+00:00","description":"Learn about what are the three ways of inheritance in c++?. Comprehensive guide with examples and best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-three-ways-of-inheritance-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What are the three ways of inheritance in C++?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=17017"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17017\/revisions"}],"predecessor-version":[{"id":50601,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17017\/revisions\/50601"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=17017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=17017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=17017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}