{"id":11728,"date":"2024-03-14T14:36:47","date_gmt":"2024-03-14T14:36:47","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/"},"modified":"2025-08-04T16:09:14","modified_gmt":"2025-08-04T16:09:14","slug":"how-to-implement-encapsulation-in-c-classes","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/","title":{"rendered":"C++ Encapsulation: Access Modifiers Explained"},"content":{"rendered":"<p>C++ class encapsulation is achieved through access control modifiers, mainly including public, protected, and private. The public modifier is used to declare a class&#8217;s public members, which can be accessed from outside the class; the private modifier is used to declare a class&#8217;s private members, which can only be accessed within the class; the protected modifier is used to declare a class&#8217;s protected members, which can be accessed by derived classes.<\/p>\n<p>Here is a simple example showcasing how to implement a class with private attributes and public methods:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Person<\/span> {\r\n<span class=\"hljs-keyword\">private<\/span>:\r\n    string name;\r\n    <span class=\"hljs-type\">int<\/span> age;\r\n\r\n<span class=\"hljs-keyword\">public<\/span>:\r\n    <span class=\"hljs-built_in\">Person<\/span>(string n, <span class=\"hljs-type\">int<\/span> a) {\r\n        name = n;\r\n        age = a;\r\n    }\r\n\r\n    <span class=\"hljs-function\"><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">setName<\/span><span class=\"hljs-params\">(string n)<\/span> <\/span>{\r\n        name = n;\r\n    }\r\n\r\n    <span class=\"hljs-function\">string <span class=\"hljs-title\">getName<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> name;\r\n    }\r\n\r\n    <span class=\"hljs-function\"><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title\">setAge<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span> a)<\/span> <\/span>{\r\n        age = a;\r\n    }\r\n\r\n    <span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">getAge<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> age;\r\n    }\r\n};\r\n<\/code><\/pre>\n<p>In the example above, name and age are declared as private attributes, only accessible within the Person class. setName, getName, setAge, and getAge are declared as public methods, which can be accessed externally. This achieves encapsulation of the class attributes, where external access and manipulation of the attributes can only be done through public methods, ensuring data security and integrity.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C++ class encapsulation is achieved through access control modifiers, mainly including public, protected, and private. The public modifier is used to declare a class&#8217;s public members, which can be accessed from outside the class; the private modifier is used to declare a class&#8217;s private members, which can only be accessed within the class; the protected [&hellip;]<\/p>\n","protected":false},"author":8,"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":[692,4165,699,9472,789],"class_list":["post-11728","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-access-modifiers","tag-c-encapsulation","tag-c-classes","tag-oop-in-c","tag-private-members"],"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>C++ Encapsulation: Access Modifiers Explained - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn to implement encapsulation in C++ classes using public, private and protected modifiers. Practical guide with code examples.\" \/>\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\/how-to-implement-encapsulation-in-c-classes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ Encapsulation: Access Modifiers Explained\" \/>\n<meta property=\"og:description\" content=\"Learn to implement encapsulation in C++ classes using public, private and protected modifiers. Practical guide with code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/\" \/>\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-14T14:36:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T16:09:14+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\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=\"William Carter\" \/>\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\/how-to-implement-encapsulation-in-c-classes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"C++ Encapsulation: Access Modifiers Explained\",\"datePublished\":\"2024-03-14T14:36:47+00:00\",\"dateModified\":\"2025-08-04T16:09:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/\"},\"wordCount\":156,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"access modifiers\",\"C# encapsulation\",\"C++ classes\",\"OOP in C\",\"private members\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/\",\"name\":\"C++ Encapsulation: Access Modifiers Explained - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T14:36:47+00:00\",\"dateModified\":\"2025-08-04T16:09:14+00:00\",\"description\":\"Learn to implement encapsulation in C++ classes using public, private and protected modifiers. Practical guide with code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Encapsulation: Access Modifiers Explained\"}]},{\"@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\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C++ Encapsulation: Access Modifiers Explained - Blog - Silicon Cloud","description":"Learn to implement encapsulation in C++ classes using public, private and protected modifiers. Practical guide with code examples.","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\/how-to-implement-encapsulation-in-c-classes\/","og_locale":"en_US","og_type":"article","og_title":"C++ Encapsulation: Access Modifiers Explained","og_description":"Learn to implement encapsulation in C++ classes using public, private and protected modifiers. Practical guide with code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T14:36:47+00:00","article_modified_time":"2025-08-04T16:09:14+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"C++ Encapsulation: Access Modifiers Explained","datePublished":"2024-03-14T14:36:47+00:00","dateModified":"2025-08-04T16:09:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/"},"wordCount":156,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["access modifiers","C# encapsulation","C++ classes","OOP in C","private members"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/","name":"C++ Encapsulation: Access Modifiers Explained - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T14:36:47+00:00","dateModified":"2025-08-04T16:09:14+00:00","description":"Learn to implement encapsulation in C++ classes using public, private and protected modifiers. Practical guide with code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-encapsulation-in-c-classes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ Encapsulation: Access Modifiers Explained"}]},{"@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\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11728","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=11728"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11728\/revisions"}],"predecessor-version":[{"id":155516,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11728\/revisions\/155516"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=11728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=11728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=11728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}