<?xml version="1.0" encoding="iso-8859-9" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="http://syndication.webwizguide.com/rss_namespace/">
 <channel>
  <title>Datakent Forum : C++ Smart Pointer</title>
  <link>http://forum.datakent.com/</link>
  <description>XML içerik linki; Datakent Forum : C, C++, Visual C++ : C++ Smart Pointer</description>
  <pubDate>Tue, 28 Apr 2026 13:18:52 +0000</pubDate>
  <lastBuildDate>Thu, 07 Dec 2017 21:54:10 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 9.54</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>forum.datakent.com/RSS_post_feed.asp?TID=2991</WebWizForums:feedURL>
  <image>
   <title>Datakent Forum</title>
   <url>http://forum.datakent.com/forum_images/datakent.com_forums.png</url>
   <link>http://forum.datakent.com/</link>
  </image>
  <item>
   <title>C++ Smart Pointer : Klasik C++ pointer tan&#305;mlama ve...</title>
   <link>http://forum.datakent.com/forum_posts.asp?TID=2991&amp;PID=5983#5983</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="http://forum.datakent.com/member_profile.asp?PF=1" rel="nofollow">murat turan</a><br /><strong>Konu:</strong> 2991<br /><strong>Gönderim Zamanı:</strong> 07.Aralik.2017 Saat 21:54<br /><br />Klasik C++ pointer tanımlama ve yok etme (silme)<br><pre ="prettyprint prettyprinted" style="clear: both; overflow: auto; border: 1px solid rgb136, 136, 136; padding: 2px; color: rgb34, 34, 34; font-size: 15.4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-trans: n&#111;ne; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decorati&#111;n-style: initial; text-decorati&#111;n-color: initial;"><code ="-cpp"><span ="kwd" style="color: rgb0, 0, 136;">void</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="typ" style="color: rgb102, 0, 102;">FuncMightLeak</span><span ="pun" style="color: rgb102, 102, 0;">()</span><span ="pln" style="color: rgb0, 0, 0;"></span><span ="pun" style="color: rgb102, 102, 0;">{</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="typ" style="color: rgb102, 0, 102;">MyType</span><span ="pun" style="color: rgb102, 102, 0;">*</span><span ="pln" style="color: rgb0, 0, 0;"> pFirst </span><span ="pun" style="color: rgb102, 102, 0;">=</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="kwd" style="color: rgb0, 0, 136;">new</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="typ" style="color: rgb102, 0, 102;">MyType</span><span ="pun" style="color: rgb102, 102, 0;">();</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">if</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="pun" style="color: rgb102, 102, 0;">(!</span><span ="pln" style="color: rgb0, 0, 0;">process</span><span ="pun" style="color: rgb102, 102, 0;">())</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="pun" style="color: rgb102, 102, 0;">{</span><span ="pln" style="color: rgb0, 0, 0;">        </span><span ="kwd" style="color: rgb0, 0, 136;">delete</span><span ="pln" style="color: rgb0, 0, 0;"> pFirst</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">        </span><span ="kwd" style="color: rgb0, 0, 136;">return</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="pun" style="color: rgb102, 102, 0;">}</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="typ" style="color: rgb102, 0, 102;">MyType</span><span ="pun" style="color: rgb102, 102, 0;">*</span><span ="pln" style="color: rgb0, 0, 0;"> pSecond </span><span ="pun" style="color: rgb102, 102, 0;">=</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="kwd" style="color: rgb0, 0, 136;">new</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="typ" style="color: rgb102, 0, 102;">MyType</span><span ="pun" style="color: rgb102, 102, 0;">();</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">if</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="pun" style="color: rgb102, 102, 0;">(!</span><span ="pln" style="color: rgb0, 0, 0;">processSecond</span><span ="pun" style="color: rgb102, 102, 0;">())</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="pun" style="color: rgb102, 102, 0;">{</span><span ="pln" style="color: rgb0, 0, 0;">        </span><span ="kwd" style="color: rgb0, 0, 136;">delete</span><span ="pln" style="color: rgb0, 0, 0;"> pFirst</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">        </span><span ="kwd" style="color: rgb0, 0, 136;">delete</span><span ="pln" style="color: rgb0, 0, 0;"> pSecond</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">        </span><span ="kwd" style="color: rgb0, 0, 136;">return</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="pun" style="color: rgb102, 102, 0;">}</span><span ="pln" style="color: rgb0, 0, 0;">    process</span><span ="pun" style="color: rgb102, 102, 0;">();</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">delete</span><span ="pln" style="color: rgb0, 0, 0;"> pFirst</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">delete</span><span ="pln" style="color: rgb0, 0, 0;"> pSecond</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;"></span><span ="pun" style="color: rgb102, 102, 0;">}</span></code></pre><br><br>Yeni nesil C++ derleyiciler (c++ 17 &gt;=) smart pointer ile tanımlamayı daha basitleştirdiği gibi silme işlemleriylede ilgili kod bloklarını ortadan kaldırıyor zira return (kod bitişi sonrası) pointer değişkenler otomatik olarak kaldırılıyor.<br><pre ="prettyprint prettyprinted" style="clear: both; overflow: auto; border: 1px solid rgb136, 136, 136; padding: 2px; color: rgb34, 34, 34; font-size: 15.4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-trans: n&#111;ne; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decorati&#111;n-style: initial; text-decorati&#111;n-color: initial;"><code ="-cpp"><span ="kwd" style="color: rgb0, 0, 136;">void</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="typ" style="color: rgb102, 0, 102;">FuncNoLeaks</span><span ="pun" style="color: rgb102, 102, 0;">()</span><span ="pln" style="color: rgb0, 0, 0;"></span><span ="pun" style="color: rgb102, 102, 0;">{</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">auto</span><span ="pln" style="color: rgb0, 0, 0;"> pFirst </span><span ="pun" style="color: rgb102, 102, 0;">=</span><span ="pln" style="color: rgb0, 0, 0;"> std</span><span ="pun" style="color: rgb102, 102, 0;">::</span><span ="pln" style="color: rgb0, 0, 0;">make_unique</span><span ="pun" style="color: rgb102, 102, 0;">&lt;</span><span ="typ" style="color: rgb102, 0, 102;">MyType</span><span ="pun" style="color: rgb102, 102, 0;">&gt;();</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">if</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="pun" style="color: rgb102, 102, 0;">(!</span><span ="pln" style="color: rgb0, 0, 0;">process</span><span ="pun" style="color: rgb102, 102, 0;">())</span><span ="pln" style="color: rgb0, 0, 0;">        </span><span ="kwd" style="color: rgb0, 0, 136;">return</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">auto</span><span ="pln" style="color: rgb0, 0, 0;"> pSecond </span><span ="pun" style="color: rgb102, 102, 0;">=</span><span ="pln" style="color: rgb0, 0, 0;"> std</span><span ="pun" style="color: rgb102, 102, 0;">::</span><span ="pln" style="color: rgb0, 0, 0;">make_unique</span><span ="pun" style="color: rgb102, 102, 0;">&lt;</span><span ="typ" style="color: rgb102, 0, 102;">MyType</span><span ="pun" style="color: rgb102, 102, 0;">&gt;();</span><span ="pln" style="color: rgb0, 0, 0;">    </span><span ="kwd" style="color: rgb0, 0, 136;">if</span><span ="pln" style="color: rgb0, 0, 0;"> </span><span ="pun" style="color: rgb102, 102, 0;">(!</span><span ="pln" style="color: rgb0, 0, 0;">processSecond</span><span ="pun" style="color: rgb102, 102, 0;">())</span><span ="pln" style="color: rgb0, 0, 0;">        </span><span ="kwd" style="color: rgb0, 0, 136;">return</span><span ="pun" style="color: rgb102, 102, 0;">;</span><span ="pln" style="color: rgb0, 0, 0;">    process</span><span ="pun" style="color: rgb102, 102, 0;">();</span><span ="pln" style="color: rgb0, 0, 0;"></span><span ="pun" style="color: rgb102, 102, 0;">}</span></code></pre><br>Smart pointer: std::make_unique, std::make_shared, std::unique_ptr, std::shared_ptr<br>]]>
   </description>
   <pubDate>Thu, 07 Dec 2017 21:54:10 +0000</pubDate>
   <guid isPermaLink="true">http://forum.datakent.com/forum_posts.asp?TID=2991&amp;PID=5983#5983</guid>
  </item> 
 </channel>
</rss>