{"id":18748,"date":"2024-03-15T17:33:53","date_gmt":"2024-03-15T17:33:53","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/"},"modified":"2024-03-21T14:03:01","modified_gmt":"2024-03-21T14:03:01","slug":"what-does-c-operator-overloading-method-refer-to","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/","title":{"rendered":"What does C++ operator overloading method refer to?"},"content":{"rendered":"<p>When writing custom classes in C++, operator overloading allows for the redefinition of operators within the class, enabling specific operations to be performed on objects of the class. This allows objects of custom classes to be operated on in a similar way to built-in types.<\/p>\n<p>Operator overloading is achieved by defining corresponding member functions or global functions within a class. The function name for overloading operators is fixed, starting with the keyword &#8220;operator&#8221; followed by the symbol of the operator to be overloaded. For example, the function name for overloading the addition operator + is operator+.<\/p>\n<p>Functions that overload operators can have custom parameter types and return types to meet specific requirements. Overloading operators allows for operations like addition, subtraction, multiplication, division, comparison, and assignment between objects of a class to be implemented.<\/p>\n<p>Here is an example demonstrating how to overload the addition operator of a class.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MyClass<\/span> {\r\n<span class=\"hljs-keyword\">private<\/span>:\r\n    <span class=\"hljs-type\">int<\/span> value;\r\n<span class=\"hljs-keyword\">public<\/span>:\r\n    <span class=\"hljs-built_in\">MyClass<\/span>(<span class=\"hljs-type\">int<\/span> val) : <span class=\"hljs-built_in\">value<\/span>(val) {}\r\n    \r\n    MyClass <span class=\"hljs-keyword\">operator<\/span>+(<span class=\"hljs-type\">const<\/span> MyClass&amp; other) {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">MyClass<\/span>(value + other.value);\r\n    }\r\n    \r\n    <span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">getValue<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n        <span class=\"hljs-keyword\">return<\/span> value;\r\n    }\r\n};\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    <span class=\"hljs-function\">MyClass <span class=\"hljs-title\">obj1<\/span><span class=\"hljs-params\">(<span class=\"hljs-number\">5<\/span>)<\/span><\/span>;\r\n    <span class=\"hljs-function\">MyClass <span class=\"hljs-title\">obj2<\/span><span class=\"hljs-params\">(<span class=\"hljs-number\">10<\/span>)<\/span><\/span>;\r\n    \r\n    MyClass obj3 = obj1 + obj2;\r\n    \r\n    cout &lt;&lt; <span class=\"hljs-string\">\"Sum: \"<\/span> &lt;&lt; obj3.<span class=\"hljs-built_in\">getValue<\/span>() &lt;&lt; endl; <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\uff1aSum: 15<\/span>\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 the example above, the MyClass class overloads the addition operator +, allowing two MyClass objects to be added together using the + operator. Inside the overloaded function for the + operator, a new MyClass object is created by adding the values of the two objects together and then returned as a return value.<\/p>\n<p>By overloading operators, it is possible for objects of custom classes to be operated on in a more intuitive and concise manner, enhancing the readability and flexibility of the code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When writing custom classes in C++, operator overloading allows for the redefinition of operators within the class, enabling specific operations to be performed on objects of the class. This allows objects of custom classes to be operated on in a similar way to built-in types. Operator overloading is achieved by defining corresponding member functions or [&hellip;]<\/p>\n","protected":false},"author":12,"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-18748","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>What does C++ operator overloading method refer to? - 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\/what-does-c-operator-overloading-method-refer-to\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What does C++ operator overloading method refer to?\" \/>\n<meta property=\"og:description\" content=\"When writing custom classes in C++, operator overloading allows for the redefinition of operators within the class, enabling specific operations to be performed on objects of the class. This allows objects of custom classes to be operated on in a similar way to built-in types. Operator overloading is achieved by defining corresponding member functions or [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/\" \/>\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-15T17:33:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T14:03:01+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\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=\"Liam\" \/>\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-does-c-operator-overloading-method-refer-to\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"What does C++ operator overloading method refer to?\",\"datePublished\":\"2024-03-15T17:33:53+00:00\",\"dateModified\":\"2024-03-21T14:03:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/\"},\"wordCount\":235,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/\",\"name\":\"What does C++ operator overloading method refer to? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T17:33:53+00:00\",\"dateModified\":\"2024-03-21T14:03:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What does C++ operator overloading method refer to?\"}]},{\"@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\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What does C++ operator overloading method refer to? - 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\/what-does-c-operator-overloading-method-refer-to\/","og_locale":"en_US","og_type":"article","og_title":"What does C++ operator overloading method refer to?","og_description":"When writing custom classes in C++, operator overloading allows for the redefinition of operators within the class, enabling specific operations to be performed on objects of the class. This allows objects of custom classes to be operated on in a similar way to built-in types. Operator overloading is achieved by defining corresponding member functions or [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T17:33:53+00:00","article_modified_time":"2024-03-21T14:03:01+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"What does C++ operator overloading method refer to?","datePublished":"2024-03-15T17:33:53+00:00","dateModified":"2024-03-21T14:03:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/"},"wordCount":235,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/","url":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/","name":"What does C++ operator overloading method refer to? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T17:33:53+00:00","dateModified":"2024-03-21T14:03:01+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-does-c-operator-overloading-method-refer-to\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What does C++ operator overloading method refer to?"}]},{"@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\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18748","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\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18748"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18748\/revisions"}],"predecessor-version":[{"id":52450,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18748\/revisions\/52450"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}