Latest Robots

Sunday, 24 April 2022

[New post] Weekly C++ 2

Site logo image Salih's Space posted: " CLASSES vs STRUCTS Yapılar birçok özellik bakımından sınıflara benzemektedirler. Fakat verilerin tutuldukları alanlar birbirinden ayrılır ve en önemli farkları da budur. Yapılar stack (yığın) alanında tutulurken sınıflar heap (öbek) alanında tutulur. "

Weekly C++ 2

Salih's Space

Apr 24

CLASSES vs STRUCTS

Yapılar birçok özellik bakımından sınıflara benzemektedirler. Fakat verilerin tutuldukları alanlar birbirinden ayrılır ve en önemli farkları da budur. Yapılar stack (yığın) alanında tutulurken sınıflar heap (öbek) alanında tutulur. Bu sebep ile yapılar belli büyüklükteki verileri tutabilir. Çünkü stack alanı çok sınırlı bir veri alanıdır. Büyük veriler stack alanına yüklenmeye çalışıldığında stack overflow olarak adlandırılan yığın taşması meydana gelir.

Özellikle metodlara veriler aktarırken bu verileri sınıf içerisinde tanımladığımızda, tüm veriler metoda aktarılacağını sadece bu verilerin öbekteki başlangıç adresi aktarılır ve ilgili parametrenin de bu adresteki verilere işaret etmesi sağlanmış olur. Böylece büyük boyutlu verileri stack'ta kopyalayarak gereksiz miktarda bellek harcanmasının önüne geçilmiş olunur. Ancak küçük boyutlarda veriler ile çalışırken bu verileri sınıflar içerisinde kullandığımızda bu kezde gereksiz yere bellek kullanıldığı öbek şişer ve performans düşer. Bu konudaki uzman görüş 16 byte'tan küçük veriler için yapıların kullanılması, 16 byte'tan büyük veriler için ise sınıfların kullanılmasıdır.

Diğer taraftan yapılar ile sınıflar arasında başka farklılıklarda vardır. Örneğin bir yapı için varsayılan yapıcı metod (default constructor) yazamayız. Derleyici hatası alırız. Ancak bu değişik sayıda parametreler alan yapıcılar yazmamızı engellemez. Oysaki sınıflarda istersek sınıfın varsayılan yapıcı metodunu kendimiz yazabilmekteyiz. l  

Bir yapı içersinde yer alan constructor metod(lar) içinde tanımlamış olduğumuz alanlara başlangıç değerlerini atamak zorundayız. Oysaki bir sınıftaki constructor(lar) içinde kullanılan alanlara başlangıç değerlerini atamaz isek, derleyici bizim yerimize sayısal değerlere 0, boolean değerlere false vb... gibi başlangıç değerlerini kendisi otomatik olarak yapar. Ancak derleyici aynı işi yapılarda yapmaz. Bu nedenle bir yapı içinde kullandığımız constructor(lar)daki tanımlamış olduğumuz alanlara mutlaka ilk değerlerini vermemiz gerekir.

Yapı kullanımı sınıf kullanımına göre erişim hızı bakımından yüksek ve daha az maliyetlidir.

Birden fazla struct'ı iç içe kullanabiliriz. Bu duruma Nested Structures denir.

  • Struct: Kendiliğinden değiştirilmeden halinde (default) public öğelere sahiptir. Çok nesneye dayalı işlem içermeyen, düz yapılarınız için bunu kullanabilirsiniz.
  • Class: Kendiliğinden değiştirilmeden halinde (default) private öğelere sahiptir. Yapılar arasında işlem yapıldığında, öğeler arasında fonksiyonel aksiyonlara ihtiyaç duyduğunuzda bunu kullanabilirsiniz. 

GELECEK KONULAR

Dönüştüren kurucu fonksiyon "(conversion constructor) nedir?

(Tür dönüştürme operatör fonksiyonları (type-cast operator functions) nedir?

Smart Pointer Nedir?

make_unique nedir?

Comment
Like
Tip icon image You can also reply to this email to leave a comment.

Unsubscribe to no longer receive posts from Salih's Space.
Change your email settings at manage subscriptions.

Trouble clicking? Copy and paste this URL into your browser:
http://salihspace.home.blog

Powered by WordPress.com
Download on the App Store Get it on Google Play
at April 24, 2022
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

No comments:

Post a Comment

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

[New post] Giants

...

  • [New post] Slotxo Internet based Picture slot machine game Fun-based activities That will Play
    Piddle Pops posted: "Discover these days more information on Slot machines performance Gear Financial businesses as well as...
  • [New post] Giants
    ...
  • [New post] Plutonium contamination in Ohio, USA
    Chri...
  • https://paxorex.blogspot.com
  • https://acciyo.blogspot.com
  • https://sunbrew.blogspot.com
  • https://readingvox.blogspot.com
  • https://neextdraft.blogspot.com
  • https://udimy.blogspot.com
  • https://arcieve.blogspot.com
  • https://diabetesmail.blogspot.com
  • https://quiltingmail.blogspot.com
  • https://downloadallyouwanttutorials.blogspot.com
  • https://increasingmarketingsystem.blogspot.com
  • https://skysportingnewsnationspinquirer.blogspot.com
  • https://politicnewsbusterinsiderpostreview.blogspot.com
  • https://javascripttrendlist.blogspot.com
  • https://teraqiitatail.blogspot.com
  • https://bigpalacenews.blogspot.com
  • https://executivetowernews.blogspot.com
  • https://magnificentplannews.blogspot.com
  • https://businessinboard.blogspot.com
  • https://patriotsscience.blogspot.com
  • https://allinonequantumleap.blogspot.com
  • https://foodandrecipefusion.blogspot.com
  • https://newsletterforeveryone.blogspot.com
  • https://snacksrobinhood.blogspot.com
  • https://dailynewslettersph.blogspot.com
  • https://rankedrama.blogspot.com
  • https://oschinanet.blogspot.com
  • https://nourich.blogspot.com
  • https://phnewsnet.blogspot.com
  • https://structuresusingc.blogspot.com
  • https://foodubers.blogspot.com
  • https://genuinequality.blogspot.com
  • https://techdigitalmedia.blogspot.com
  • https://entertainmenhubtbiz.blogspot.com
  • https://sportsbookwire.blogspot.com
  • https://societycast.blogspot.com
  • https://lifestylesportsreturn.blogspot.com
  • https://natureimpactfactor.blogspot.com
  • https://artnetworth.blogspot.com
  • https://entrepreneurexamples.blogspot.com
  • https://cryptomarketbase.blogspot.com
  • https://btsbiot.blogspot.com
  • https://sexybinikis.blogspot.com
  • https://foreignexchangecurrency.blogspot.com
  • https://classifiedexample.blogspot.com
  • https://bookboons.blogspot.com
  • https://writingdate.blogspot.com
  • https://wamios.blogspot.com
  • https://justmightdiy.blogspot.com
  • https://playfreeonlinegamesmore.blogspot.com
  • https://healthlinefitnessfirst.blogspot.com
  • https://snaptikvideodownloader.blogspot.com
  • https://pokemonunitepc.blogspot.com
  • https://neverthelesskdrama.blogspot.com
  • https://coolantioniq.blogspot.com
  • https://hackerploit.blogspot.com
  • https://ballbreakdown.blogspot.com
  • https://flixsterio.blogspot.com
  • https://fortnitebattleroyaletrack.blogspot.com
  • https://manilaplus.blogspot.com
  • https://davaoplus.blogspot.com
  • https://tutorialsfiles.blogspot.com
  • https://mondaymorningcookingclub.blogspot.com
  • https://gymnearmee.blogspot.com
  • https://windows26.blogspot.com
  • https://millionaireinvest.blogspot.com
  • https://latestkhmernews.blogspot.com
  • https://latestisraelnews.blogspot.com
  • https://latestaustralianews.blogspot.com
  • https://latestirannews.blogspot.com
  • https://latestjapannews.blogspot.com
  • https://latestsaudinews.blogspot.com
  • https://latestfreecourse.blogspot.com
  • https://ikeafurnitureaccessories.blogspot.com
  • https://makeupandbeautyproduct.blogspot.com
  • https://latestpets.blogspot.com
  • https://topecommerceniches.blogspot.com
  • https://latesttexasnews.blogspot.com
  • https://latestufcgame.blogspot.com
  • https://tipweightlossfast.blogspot.com
  • https://latestcancercure.blogspot.com
  • https://philsys.blogspot.com
  • https://phoramensoba.blogspot.com
  • https://latestcupcakes.blogspot.com
  • https://latestgivex.blogspot.com
  • https://latestlottoresult.blogspot.com
  • https://downloadarchived.blogspot.com
  • https://doesports.blogspot.com

Search This Blog

  • Home

About Me

latest robot
View my complete profile

Report Abuse

Blog Archive

  • October 2023 (1228)
  • September 2023 (1871)
  • August 2023 (1663)
  • July 2023 (1819)
  • June 2023 (1774)
  • May 2023 (1651)
  • April 2023 (1598)
  • March 2023 (1753)
  • February 2023 (1419)
  • January 2023 (1661)
  • December 2022 (1507)
  • November 2022 (1620)
  • October 2022 (1463)
  • September 2022 (1332)
  • August 2022 (1370)
  • July 2022 (1493)
  • June 2022 (1331)
  • May 2022 (1450)
  • April 2022 (1438)
  • March 2022 (1366)
  • February 2022 (958)
  • January 2022 (994)
  • December 2021 (1759)
  • November 2021 (3125)
  • October 2021 (3244)
  • September 2021 (3138)
  • August 2021 (3240)
  • July 2021 (1142)
Powered by Blogger.