{"id":23570,"date":"2024-03-16T01:38:42","date_gmt":"2024-03-16T01:38:42","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/"},"modified":"2024-03-22T01:35:28","modified_gmt":"2024-03-22T01:35:28","slug":"how-to-use-an-enum-across-files-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/","title":{"rendered":"How to use an enum across files in C++?"},"content":{"rendered":"<p>In C++, enums can be used across files.<\/p>\n<p>To use an enumeration in multiple files, you need to place the enumeration definition in a header file and include that header file in the files where the enumeration is needed.<\/p>\n<p>For example, let&#8217;s say we have a header file called colors.h that defines an enum.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ colors.h<\/span>\r\n\r\n<span class=\"hljs-keyword\">enum<\/span> <span class=\"hljs-title class_\">Color<\/span> {\r\n    RED,\r\n    GREEN,\r\n    BLUE\r\n};\r\n<\/code><\/pre>\n<p>Then in another source file, we can include that header file and use the enum.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ main.cpp<\/span>\r\n\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">\"colors.h\"<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;iostream&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    Color color = RED;\r\n    \r\n    <span class=\"hljs-keyword\">if<\/span> (color == GREEN) {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"The color is green\"<\/span> &lt;&lt; std::endl;\r\n    } <span class=\"hljs-keyword\">else<\/span> {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"The color is not green\"<\/span> &lt;&lt; std::endl;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>In this example, we have included the colors.h header file in main.cpp and used the Color enum type in the main function.<\/p>\n<p>Be sure to include the appropriate header files in both the header file where the enum is defined and in the source file where the enum is used. This ensures that the enum is resolved before being used.<\/p>\n<p>In addition, you can also use namespaces to organize the definition of enums and avoid naming conflicts. For example:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ colors.h<\/span>\r\n\r\n<span class=\"hljs-keyword\">namespace<\/span> MyColors {\r\n    <span class=\"hljs-keyword\">enum<\/span> <span class=\"hljs-title class_\">Color<\/span> {\r\n        RED,\r\n        GREEN,\r\n        BLUE\r\n    };\r\n}\r\n<\/code><\/pre>\n<p>Then in the file where the enum is used, the enum can be referenced using a namespace.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ main.cpp<\/span>\r\n\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">\"colors.h\"<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;iostream&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    MyColors::Color color = MyColors::RED;\r\n    \r\n    <span class=\"hljs-keyword\">if<\/span> (color == MyColors::GREEN) {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"The color is green\"<\/span> &lt;&lt; std::endl;\r\n    } <span class=\"hljs-keyword\">else<\/span> {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"The color is not green\"<\/span> &lt;&lt; std::endl;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In C++, enums can be used across files. To use an enumeration in multiple files, you need to place the enumeration definition in a header file and include that header file in the files where the enumeration is needed. For example, let&#8217;s say we have a header file called colors.h that defines an enum. \/\/ [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-23570","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"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>How to use an enum across files in C++? - Blog - Silicon Cloud<\/title>\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-use-an-enum-across-files-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use an enum across files in C++?\" \/>\n<meta property=\"og:description\" content=\"In C++, enums can be used across files. To use an enumeration in multiple files, you need to place the enumeration definition in a header file and include that header file in the files where the enumeration is needed. For example, let&#8217;s say we have a header file called colors.h that defines an enum. \/\/ [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-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-16T01:38:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T01:35:28+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\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=\"Isabella Edwards\" \/>\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-use-an-enum-across-files-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"How to use an enum across files in C++?\",\"datePublished\":\"2024-03-16T01:38:42+00:00\",\"dateModified\":\"2024-03-22T01:35:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/\"},\"wordCount\":178,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/\",\"name\":\"How to use an enum across files in C++? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T01:38:42+00:00\",\"dateModified\":\"2024-03-22T01:35:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use an enum across files 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\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use an enum across files in C++? - Blog - Silicon Cloud","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-use-an-enum-across-files-in-c\/","og_locale":"en_US","og_type":"article","og_title":"How to use an enum across files in C++?","og_description":"In C++, enums can be used across files. To use an enumeration in multiple files, you need to place the enumeration definition in a header file and include that header file in the files where the enumeration is needed. For example, let&#8217;s say we have a header file called colors.h that defines an enum. \/\/ [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T01:38:42+00:00","article_modified_time":"2024-03-22T01:35:28+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"How to use an enum across files in C++?","datePublished":"2024-03-16T01:38:42+00:00","dateModified":"2024-03-22T01:35:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/"},"wordCount":178,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/","name":"How to use an enum across files in C++? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T01:38:42+00:00","dateModified":"2024-03-22T01:35:28+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-an-enum-across-files-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use an enum across files 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\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23570","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\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=23570"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23570\/revisions"}],"predecessor-version":[{"id":57554,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23570\/revisions\/57554"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=23570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=23570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=23570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}