{"id":1985,"date":"2020-10-30T20:08:55","date_gmt":"2020-10-30T20:08:55","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=1985"},"modified":"2020-10-30T20:08:55","modified_gmt":"2020-10-30T20:08:55","slug":"haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/","title":{"rendered":"Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (&#8220;User-defined Conversion Functions)"},"content":{"rendered":"<p>C++ 11 ile ilgili gelen \u00f6zelliklere g\u00f6z atmaya, son h\u0131zla devam ediyoruz.<\/p>\n<p>Yine <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/06\/19\/modern-c-2-c-11-yenilikleri\/\">Modern C++ (2): C++ 11 Yenilikleri<\/a><\/strong><\/span>&#8216;de eksik kalan konulardan birisi, benim de a\u00e7\u0131k\u00e7as\u0131 daha \u00f6nce pek a\u015fina olmad\u0131\u011f\u0131m bir kabiliyet olan &#8220;kullan\u0131c\u0131 tan\u0131ml\u0131 d\u00f6n\u00fc\u015ft\u00fcrme fonksiyonlar\u0131na&#8221; h\u0131zl\u0131ca bakaca\u011f\u0131z. Baz\u0131 kaynaklarda, d\u00f6n\u00fc\u015ft\u00fcrme i\u015flevleri, diye de ge\u00e7ebiliyor. Konu ba\u015fl\u0131k itibari ile asl\u0131nda, t\u00fcr d\u00f6n\u00fc\u015f\u00fcm\u00fc gibi \u00e7ok \u00f6nemli ve geni\u015f bir konu ba\u015fl\u0131\u011f\u0131n\u0131n i\u00e7erisinde yer al\u0131yor. Biz burada, \u00f6zellikle bu kabiliyete bakaca\u011f\u0131z ama \u00f6ncesinde \u00e7ok k\u0131saca C++&#8217;da hangi durumlarda d\u00f6n\u00fc\u015ft\u00fcrme yap\u0131ld\u0131\u011f\u0131na bir g\u00f6z atal\u0131m. C++ ile gelen standart d\u00f6n\u00fc\u015f\u00fcm i\u015flevleri, temel tipler ile kullan\u0131c\u0131 tan\u0131ml\u0131 tipler aras\u0131nda ya da standart tipler aras\u0131nda olabilmektedir. Bu tarz d\u00f6n\u00fc\u015f\u00fcmlere a\u015fa\u011f\u0131daki \u00f6rnekleri verebiliriz:<\/p>\n<ul>\n<li>Tam say\u0131lar aras\u0131 d\u00f6n\u00fc\u015f\u00fcmler (enumerasyonlardan tam say\u0131lara veya tam tersi, char\/short\/int\/long\/long long d\u00f6n\u00fc\u015f\u00fcmleri). Burada k\u00fc\u00e7\u00fck boyutlu veri tipinden b\u00fcy\u00fck olana d\u00f6n\u00fc\u015f\u00fcm ya da tersini kapsamaktad\u0131r,<\/li>\n<li>\u0130\u015faretli ve i\u015faretsiz say\u0131lar aras\u0131 d\u00f6n\u00fc\u015f\u00fcmler (signed\/unsigned),<\/li>\n<li>Kayan noktal\u0131 say\u0131lar aras\u0131 d\u00f6n\u00fc\u015f\u00fcmler (float\/double) ile kayan say\u0131\/tam say\u0131 d\u00f6n\u00fc\u015fmleri,<\/li>\n<li>Ve son olarak aritmetik operasyonlar s\u0131ras\u0131nda ger\u00e7ekle\u015ftirilen d\u00f6n\u00fc\u015f\u00fcm i\u015flemleri.<\/li>\n<\/ul>\n<p>Bu basit d\u00f6n\u00fc\u015f\u00fcmlerin yan\u0131nda a\u015fa\u011f\u0131daki d\u00f6n\u00fc\u015f\u00fcm i\u015flevleri de sunulmaktad\u0131r:<\/p>\n<ul>\n<li>\u0130\u015faret\u00e7i d\u00f6n\u00fc\u015f\u00fcmleri (void*&#8217;dan di\u011fer tiplere ya da tam tersi)<\/li>\n<li>\u0130\u015faret\u00e7i s\u0131n\u0131flar aras\u0131 d\u00f6n\u00fc\u015f\u00fcm (temel s\u0131n\u0131ftan t\u00fcreyen s\u0131n\u0131fa ya da tam tersi),<\/li>\n<li>Fonksiyon i\u015faret\u00e7i ve s\u0131n\u0131f \u00fcye fonksiyon i\u015faret\u00e7i d\u00f6n\u00fc\u015f\u00fcmleri,<\/li>\n<li>Referanstan i\u015faret\u00e7iye d\u00f6n\u00fc\u015f\u00fcmler.<\/li>\n<\/ul>\n<p>Yukar\u0131daki d\u00f6n\u00fc\u015f\u00fcmler belirgin ve a\u00e7\u0131k bir \u015fekilde (explicit) yap\u0131labildi\u011fi gibi, \u00fcst\u00fc kapal\u0131 bir \u015fekilde de (implicit) yap\u0131labilmektedir. Her ne kadar C++, bir \u00e7ok d\u00f6n\u00fc\u015f\u00fcm\u00fc sizin yerinize bu \u015fekilde yapsa da, bir \u00e7ok kodlama standard\u0131 ve \u00f6zellikle emniyet kritik yaz\u0131l\u0131mlarda bu tarz \u00fcst\u00fc kapal\u0131 d\u00f6n\u00fc\u015f\u00fcmlerden ka\u00e7\u0131n\u0131lmaktad\u0131r. Keza daha \u00f6nce sizler ile payla\u015ft\u0131\u011f\u0131m <strong><a href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/05\/01\/emniyet-kritik-yazilim-gelistirenler-icin-okuma-listesi\/\"><span style=\"color: #008000;\">yaz\u0131l\u0131m hatalar\u0131na ili\u015fkin kazalar\u0131n<\/span><\/a><\/strong> bir k\u0131sm\u0131 ne yaz\u0131k ki bu tarz d\u00f6n\u00fc\u015f\u00fcm hatalar\u0131ndan kaynaklanm\u0131\u015f \ud83d\ude41<\/p>\n<p>Genelde bir \u00e7ok derleyici bu tarz d\u00f6n\u00fc\u015f\u00fcmlerde, derleme zaman\u0131nda uyar\u0131 vererek sizleri bilgilendiriyor. Ayr\u0131ca C++ ile gelen explicit anahtar kelimesi ile tan\u0131mlanm\u0131\u015f olan yap\u0131c\u0131 (constructor)&#8217;lar da bu tarz hatalar\u0131n (\u00fcst\u00fc kapal\u0131 d\u00f6n\u00fc\u015f\u00fcmler ile olu\u015fabilecek) \u00f6n\u00fcne ge\u00e7mek amac\u0131 ile sunulmaktad\u0131r. Benzer \u015fekilde daha \u00f6nce haftal\u0131k C++ yaz\u0131lar\u0131m\u0131n birisinde (<a href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/04\/08\/haftalik-c-26-donusturucu-yapicilar\/\"><span style=\"color: #008000;\"><strong>Haftal\u0131k C++ 27 &#8211; D\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc Yap\u0131c\u0131lar<\/strong><\/span><\/a>) C++ 11 ile gelen bir di\u011fer yap\u0131c\u0131 mekanizmalara de\u011finmi\u015ftik. Bu mekanizmalar\u0131n hepsi bir \u015fekilde yanl\u0131\u015fl\u0131kla yap\u0131lan bu tarz hatalar\u0131 derleyici hatas\u0131 olarak kullan\u0131c\u0131ya sunup, bunlar\u0131 belirgin hale getirmek.<\/p>\n<p>Bunlar\u0131n yan\u0131nda elbette <em>static_cast<\/em>, <em>dynamic_cast<\/em>, <em>reinterpret_cast<\/em> ve <em>const_cast<\/em> ara\u00e7lar\u0131n\u0131 da kullanabilirsiniz.<\/p>\n<p>Evet s\u00f6z\u00fc daha fazla uzatmadan kullan\u0131c\u0131-tan\u0131m d\u00f6n\u00fc\u015f\u00fcm tan\u0131mlamas\u0131na gelelim. Asl\u0131na bakarsan\u0131z bu kabiliyet daha C++ 11&#8217;den \u00f6nce de sunulmu\u015ftu ve a\u015fa\u011f\u0131daki gibi tan\u0131mlanabilmekteydi:<\/p>\n<pre class=\"lang:c++ decode:true\">#include &lt;iostream&gt;\r\nusing namespace std;\r\n\r\nstruct Object {\r\n\r\n    \/\/ Ustu kapali donusum\r\n    operator int() const {\r\n           return 2020; \r\n    }\r\n};\r\n\r\nint main()\r\n{\r\n    Object instance;\r\n \r\n    \/\/ Acik donusum ornegi, Yukarida tanimladigimiz kullanici tanimli fonksiyon ile sonuc degeri 2020 atanir\r\n    int n = static_cast&lt;int&gt;(instance);\r\n\r\n    \/\/ Ustu kapali donusum ornegi, Yukarida tanimladigimiz kullanici tanimli fonksiyon ile sonuc degeri 2020 atanir int n = static_cast&lt;int&gt;(x);\r\n    int m = instance;\r\n    double o = instance;\r\n\r\n    cout &lt;&lt; n &lt;&lt; \", \" &lt;&lt; m &lt;&lt; '\\n';\r\n    \r\n    return 0;\r\n}<\/pre>\n<p>Bu yetenek sayesinde, ilgili tip d\u00f6n\u00fc\u015f\u00fcmleri hem a\u00e7\u0131k hem de \u00fcst\u00fc kapal\u0131 bir \u015fekilde yap\u0131labilmekteydi. Fakat burada, halen a\u00e7\u0131kta kalan bir husus var, diyelim ki yukar\u0131da &#8220;double o&#8221; tipine bir \u00fcst\u00fc kapal\u0131 d\u00f6n\u00fc\u015f\u00fcm\u00fcn yap\u0131lmas\u0131n\u0131 istemiyorsunuz ne yapacaks\u0131n\u0131z?<\/p>\n<p>\u0130\u015fte C++ 11 ile gelen yenilik bu s\u0131k\u0131nt\u0131ya derman oluyor. D\u00f6n\u00fc\u015f\u00fcm fonksiyonunun ba\u015f\u0131na (operator int() const) &#8220;explicit&#8221; ekledi\u011finiz zaman, art\u0131k &#8220;double o = instance;&#8221; &#8216;a derleme hatas\u0131 al\u0131yor olaca\u011f\u0131z. Peki\u00a0 sadece o sat\u0131ra m\u0131? Hay\u0131r, &#8220;int m = instance;&#8221; sat\u0131r\u0131na da art\u0131k hata al\u0131yor olaca\u011f\u0131z, \u00e7\u00fcnk\u00fc her t\u00fcrl\u00fc \u00fcst\u00fc kapal\u0131 int d\u00f6n\u00fc\u015f\u00fcmlerini engellemi\u015f oluyoruz.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Kaynaklar:<\/strong><\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/en.cppreference.com\/w\/cpp\/language\/cast_operator\"><span style=\"color: #008000;\"><strong>https:\/\/en.cppreference.com\/w\/cpp\/language\/cast_operator<\/strong><\/span><\/a><\/li>\n<li><a href=\"https:\/\/www.ibm.com\/support\/knowledgecenter\/en\/SSLTBW_2.3.0\/com.ibm.zos.v2r3.cbclx01\/explicit_conversion_operators.htm\"><span style=\"color: #008000;\"><strong>https:\/\/www.ibm.com\/support\/knowledgecenter\/en\/SSLTBW_2.3.0\/com.ibm.zos.v2r3.cbclx01\/explicit_conversion_operators.htm<\/strong><\/span><\/a><\/li>\n<li><a href=\"http:\/\/ptgmedia.pearsoncmg.com\/imprint_downloads\/informit\/aw\/meyerscddemo\/DEMO\/MEC\/MC2_FR.HTM\"><span style=\"color: #008000;\"><strong>http:\/\/ptgmedia.pearsoncmg.com\/imprint_downloads\/informit\/aw\/meyerscddemo\/DEMO\/MEC\/MC2_FR.HTM<\/strong><\/span><\/a><\/li>\n<li><a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2004\/n1592.pdf\"><span style=\"color: #008000;\"><strong>http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2004\/n1592.pdf<\/strong><\/span><\/a><\/li>\n<li><a href=\"https:\/\/www.learncpp.com\/cpp-tutorial\/910-overloading-typecasts\/\"><span style=\"color: #008000;\"><strong>https:\/\/www.learncpp.com\/cpp-tutorial\/910-overloading-typecasts\/<\/strong><\/span><\/a><\/li>\n<\/ul>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>C++ 11 ile ilgili gelen \u00f6zelliklere g\u00f6z atmaya, son h\u0131zla devam ediyoruz. Yine Modern C++ (2): C++ 11 Yenilikleri&#8216;de eksik kalan konulardan birisi, benim de a\u00e7\u0131k\u00e7as\u0131 daha \u00f6nce pek a\u015fina olmad\u0131\u011f\u0131m bir kabiliyet olan &#8220;kullan\u0131c\u0131 tan\u0131ml\u0131 d\u00f6n\u00fc\u015ft\u00fcrme fonksiyonlar\u0131na&#8221; h\u0131zl\u0131ca bakaca\u011f\u0131z. Baz\u0131 kaynaklarda, d\u00f6n\u00fc\u015ft\u00fcrme i\u015flevleri, diye de ge\u00e7ebiliyor. Konu ba\u015fl\u0131k itibari ile asl\u0131nda, t\u00fcr d\u00f6n\u00fc\u015f\u00fcm\u00fc gibi&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\">Continue reading <span class=\"meta-nav\">&#8594;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":174,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[10,41],"tags":[46,797,795,792,793,796,794,791],"class_list":["post-1985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c","category-modern-c","tag-c-11","tag-const_cast","tag-dynamic_cast","tag-explicit-conversion","tag-implicit-conversion","tag-reinterpret_cast","tag-static_cast","tag-user-defined-conversion-functions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (&quot;User-defined Conversion Functions) - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131<\/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.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[:tr]Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (&quot;User-defined Conversion Functions)[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"C++ 11 ile ilgili gelen \u00f6zelliklere g\u00f6z atmaya, son h\u0131zla devam ediyoruz. Yine Modern C++ (2): C++ 11 Yenilikleri&#8216;de eksik kalan konulardan birisi, benim de a\u00e7\u0131k\u00e7as\u0131 daha \u00f6nce pek a\u015fina olmad\u0131\u011f\u0131m bir kabiliyet olan &#8220;kullan\u0131c\u0131 tan\u0131ml\u0131 d\u00f6n\u00fc\u015ft\u00fcrme fonksiyonlar\u0131na&#8221; h\u0131zl\u0131ca bakaca\u011f\u0131z. Baz\u0131 kaynaklarda, d\u00f6n\u00fc\u015ft\u00fcrme i\u015flevleri, diye de ge\u00e7ebiliyor. Konu ba\u015fl\u0131k itibari ile asl\u0131nda, t\u00fcr d\u00f6n\u00fc\u015f\u00fcm\u00fc gibi... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-30T20:08:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2017\/12\/FeaturedImage-e1580417052514.png\" \/>\n\t<meta property=\"og:image:width\" content=\"32\" \/>\n\t<meta property=\"og:image:height\" content=\"32\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"yaz\u0131l\u0131mperver\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"yaz\u0131l\u0131mperver\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (&#8220;User-defined Conversion Functions)\",\"datePublished\":\"2020-10-30T20:08:55+00:00\",\"dateModified\":\"2020-10-30T20:08:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\"},\"wordCount\":1056,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"C++ 11\",\"const_cast\",\"dynamic_cast\",\"explicit conversion\",\"implicit conversion\",\"reinterpret_cast\",\"static_cast\",\"User-defined Conversion Functions\"],\"articleSection\":[\"C++\",\"Modern C++\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\",\"name\":\"[:tr]Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (\\\"User-defined Conversion Functions)[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2020-10-30T20:08:55+00:00\",\"dateModified\":\"2020-10-30T20:08:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (&#8220;User-defined Conversion Functions)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.yazilimperver.com\/#website\",\"url\":\"https:\/\/www.yazilimperver.com\/\",\"name\":\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"description\":\"Payla\u015fmak g\u00fczeldir.\",\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.yazilimperver.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\",\"name\":\"yaz\u0131l\u0131mperver\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"contentUrl\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"caption\":\"yaz\u0131l\u0131mperver\"},\"logo\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[:tr]Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (\"User-defined Conversion Functions)[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","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.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/","og_locale":"tr_TR","og_type":"article","og_title":"[:tr]Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (\"User-defined Conversion Functions)[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"C++ 11 ile ilgili gelen \u00f6zelliklere g\u00f6z atmaya, son h\u0131zla devam ediyoruz. Yine Modern C++ (2): C++ 11 Yenilikleri&#8216;de eksik kalan konulardan birisi, benim de a\u00e7\u0131k\u00e7as\u0131 daha \u00f6nce pek a\u015fina olmad\u0131\u011f\u0131m bir kabiliyet olan &#8220;kullan\u0131c\u0131 tan\u0131ml\u0131 d\u00f6n\u00fc\u015ft\u00fcrme fonksiyonlar\u0131na&#8221; h\u0131zl\u0131ca bakaca\u011f\u0131z. Baz\u0131 kaynaklarda, d\u00f6n\u00fc\u015ft\u00fcrme i\u015flevleri, diye de ge\u00e7ebiliyor. Konu ba\u015fl\u0131k itibari ile asl\u0131nda, t\u00fcr d\u00f6n\u00fc\u015f\u00fcm\u00fc gibi... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2020-10-30T20:08:55+00:00","og_image":[{"width":32,"height":32,"url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2017\/12\/FeaturedImage-e1580417052514.png","type":"image\/png"}],"author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (&#8220;User-defined Conversion Functions)","datePublished":"2020-10-30T20:08:55+00:00","dateModified":"2020-10-30T20:08:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/"},"wordCount":1056,"commentCount":0,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["C++ 11","const_cast","dynamic_cast","explicit conversion","implicit conversion","reinterpret_cast","static_cast","User-defined Conversion Functions"],"articleSection":["C++","Modern C++"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/","name":"[:tr]Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (\"User-defined Conversion Functions)[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2020-10-30T20:08:55+00:00","dateModified":"2020-10-30T20:08:55+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/10\/30\/haftalik-c-32-kullanici-tanimli-donusturme-fonksiyonlari-user-defined-conversion-functions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"Haftal\u0131k C++ 32 \u2013 Kullan\u0131c\u0131 Tan\u0131ml\u0131 D\u00f6n\u00fc\u015ft\u00fcrme Fonksiyonlar\u0131 (&#8220;User-defined Conversion Functions)"}]},{"@type":"WebSite","@id":"https:\/\/www.yazilimperver.com\/#website","url":"https:\/\/www.yazilimperver.com\/","name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","description":"Payla\u015fmak g\u00fczeldir.","publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yazilimperver.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb","name":"yaz\u0131l\u0131mperver","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/","url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","contentUrl":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","caption":"yaz\u0131l\u0131mperver"},"logo":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/1985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/comments?post=1985"}],"version-history":[{"count":4,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/1985\/revisions"}],"predecessor-version":[{"id":1990,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/1985\/revisions\/1990"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media\/174"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=1985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=1985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=1985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}