C++'da Hibrit Kalıtım Nedir? Örneklerle Çeşitleri

Yayınlanan: 2021-05-27

“Miras” terimini sıklıkla bir programlama bağlamında kullanırız. Kodların en iyi şekilde yeniden kullanılmasını sağlamak için programlamada uygulanan bir özelliktir. OOP'de (Nesne Yönelimli Programlama) “IS-A” kavramını hatırlarsanız, bunun Kalıtım özelliğine dayalı olduğunu göreceksiniz. Mirasların uygulanması, C++'da gelişmiş proje fikirleri edinmenize yardımcı olacaktır .

İçindekiler

Miras nedir?

Kalıtım sürecinde, bir sınıfın nesneleri başka bir sınıfın özelliklerini ve davranışını kazanır. Burada mevcut temel sınıftan yeni bir sınıf türetilir. Türetilen üye sınıfa genellikle alt sınıf ve ana sınıfın temel sınıf üyesi denir. Alt sınıf türetildikten sonra, ana sınıftan tüm özellikleri ve yöntemleri devralır.

Ek olarak, alt sınıf, bir amaca yönelik özel özelliklere ve yöntemlere sahip olabilir. Mevcut bir sınıfa yerel olarak eklenen ek özellikler, üst sınıftan devraldığı özellikleri etkilemeyecektir. Böylece yeni sınıf, her iki sınıfın birleşik özelliklerine sahip olacaktır.

C++'da kalıtım

Çoğu zaman, gerçekte, bir programcının aşağıdakileri yapması gereken bir nesne geliştirmesi gerekir:
1) ebeveyninin tüm niteliklerine sahip olması ve ayrıca,
2) bazı yönlerden sebat özeldir.

Bu tür istisnai özelliklerin ana sınıfta kodlanması pratik ve ekonomik olmayabilir. Bu durumda, temel sınıf genişletilerek yeni bir sınıf türetilir. Ayrıca, ek niteliklere sahip başka bir sınıftan türetilmesi. Bu şekilde, diğer sınıflarda tanımlanan öznitelikleri ve davranışları yeniden kullanabilir, genişletebilir veya değiştirebilirsiniz. Böylece birden çok sınıftan türetilen alt sınıf, bakımı ve taşınması kolay bir nesne verir. Türetilmiş sınıf, temel sınıf için özel sınıftır.

Teknik olarak, "genişler" anahtar kelimesi bir sınıfı miras almak için kullanılır. C++ , bir sınıftan miras almak için iki nokta üst üste (“ : ”) sembolünü kullanır.

Miras Türleri

Miras ve uygulama kombinasyonunun kullanımı, sınıfların türetildiği bir amaç için farklılık gösterir. Aşağıda listelendiği gibi, C++'da kullanılabilen farklı türde devralmalar vardır:

  • Tek Kalıtım , türetilmiş bir sınıfın özellikleri ve davranışı tek bir temel sınıftan miras aldığı yerdir. Örnek: A Sınıfı → B Sınıfı.
  • Hiyerarşik Kalıtım , tek bir temel sınıftan birden fazla türetilmiş sınıfın oluşturulduğu yerdir. Örnek: A Sınıfı → B Sınıfı → C Sınıfı.
  • Çoklu Kalıtım , birden çok temel sınıftan bir sınıf türetmek içindir. Burada, programcıların oluşturduğu alt nesneler, birden çok üst sınıftan özelliklerin ve özelliklerin birleştirilmiş yönlerine sahip olacaktır. Bu nesneler, kendi temel sınıf hiyerarşilerini takip eder.
  • Çok Düzeyli Kalıtım , bir alt sınıfın başka bir türetilmiş sınıftan türetildiği yerdir. Bu özellik, birden çok sınıfın birleşik yönlerini taşır ve hiyerarşilerini takip eder.
  • Hibrit Kalıtım , çoklu miras kullanmanın heterojen bir özelliğidir. Burada bir alt sınıf, tek, hiyerarşik ve çok düzeyli kalıtımların bir veya daha fazla kombinasyonundan türetilir. Bu kalıtım, farklı kalıtım türlerini karıştıran programlar için benimsenmiştir; örneğin, tek bir kalıtımı birden çok kalıtımla karıştırırken veya belki de birden çok kalıtımın tek bir program içinde karıştırıldığı bir durum.

Basit Örnek

Burada B Sınıfı ve C Sınıfı'nın her ikisi de temel sınıf olan Sınıf A'dan türetilmiştir.

Arabaların hiyerarşik bir sınıflandırması iki sınıf gösterir. Hem "Benzinli Arabalar" hem de "Elektrikli Arabalar", temel Sınıf "Arabalar"dan türetilmiştir.

C++'da Hibrit Kalıtım

Bir program tasarlamak için iki veya daha fazla türde kalıtım uygulamamız gereken durumlar olabilir. Bir program birden fazla tür kalıtım içerdiğinde, buna Hibrit Kalıtım denir.

Hibrit kalıtım , basit, çoklu kalıtım ve hiyerarşik kalıtımın bir birleşimidir. Genellikle, çoklu kalıtımlarda, bir sınıf iki sınıftan türetilir; burada üst sınıflardan biri de temel sınıf değil, türetilmiş bir sınıftır.

C++ 'da hibrit kalıtım, bir sınıfın herhangi bir kalıtımın birden fazla biçiminden veya birleşiminden türetildiği kalıtımdır. C++'daki hibrit kalıtım , türetilmiş bir sınıfın temel sınıfın özelliklerini farklı yollarda devralabileceği çok yollu kalıtım olarak da adlandırılır. Bazen çok yollu kalıtım olarak da adlandırılır. Örneğin, hem çok düzeyli hem de hiyerarşik mirasın bir kombinasyonu ile elde edilebilir.

Kısacası, hibrit kalıtım, iki veya daha fazla kalıtım türünün birleşimidir. Örneğin, aynı programda tek ve çok düzeyli devralmaları uygulayarak.

Hibrit Kalıtımın Blok Şeması

Diyagram, iki mirasın melez kombinasyonunu temsil eder; tek kalıtım ve çoklu kalıtım. Burada, tek kalıtımda B sınıfı, A sınıfından türetilir . Benzer şekilde, birden çok kalıtımda, D Sınıfı birden çok sınıftan miras alınır. Burada B sınıfı ve C sınıfı. Dolayısıyla, tek kalıtımın ve çoklu kalıtımın bir karışımı hibrit bir kalıtım oluşturur.

Hibrit kalıtım, bir programda birden fazla kalıtım uygulamamız gereken senaryolarda uygulanabilir.

C++'da Hibrit Kalıtımın Sözdizimi

Aşağıda gösterildiği gibi , C++'da hibrit kalıtım için tipik bir sözdizimi ve anlam bilgisi izlenecektir:

C++'da Hibrit Kalıtım Örnekleri

Örnek 1: Tek + Çoklu Kalıtım

Tekli ve çoklu kalıtımların nasıl uygulandığını görelim.

Bu diyagramdaki her blok bir sınıfı temsil eder ve ilgili ok bir sınıfın mirasını temsil eder.

Örnek 2: Tek + Çok Düzeyli Kalıtım

Hibrit kalıtımları oluşturmak için başka kalıtım türlerini de uygulayabiliriz.

Gerçek zamanlı bir örnek düşünelim .

Araç sınıfından bir araba alt sınıfı türetiyoruz. Başka bir sınıf Racing'i karakterize ediyor. Hem Araba sınıfından hem de Yarış sınıfından nihai bir varlık elde ettiğimizde, birleşik bir çıktı verecektir. Bu türev Ferrari - yarış arabası.

İşte C++'da hibrit kalıtım kavramını gösteren basit bir program .

Örnek Kod

Çıktı

Dünyanın en iyi Üniversitelerinden çevrimiçi Yazılım geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Çözüm

Umarım bu makale , C++'daki Hibrit Kalıtım kavramını ve türlerini anlamanıza yardımcı olmuştur . Bilgisayar ve bilgisayarla ilgili programların akışındaki öğrenciler, becerilerini ve OOP kavramları gibi teknik güvenilirliklerini artırabilir. upGrad , bu tür profesyonelleri programlama konusunda uzmanlaşmaya ve endüstri pazarında rekabet etmeye teşvik etmek için kaynaklar ve bir bilgi tabanı sağlar . upGrad'da ayrıca profesyonel ağ oluşturma ve beceri geliştirmeyi keşfetme fırsatına da sahip olursunuz.

Bu C++ projelerini yürütürken mükemmel bir öğrenme fırsatına sahip olacağınızı umuyoruz. Daha fazla bilgi edinmek istiyorsanız ve sektör uzmanlarından mentorluğa ihtiyacınız varsa, upGrad & IIIT Banglore'un Full-Stack Yazılım Geliştirmede Yönetici PG Programına göz atın.

Nesne yönelimli programlamada kalıtım nedir?

Kalıtım, kodu yeniden kullanma mekanizmasıdır ve gerçek dünyayı simüle etmeye yardımcı olur. OOP'de veri soyutlama kavramını genişletir. Bir sınıfın başka bir sınıfın özelliklerini elde etme sürecidir. OOP'de bir sınıfın yalnızca başka bir sınıf açısından tanımlanabilmesi esastır. Bunun nedeni soyutlama kavramıdır. Kalıtım, diğer nesnelerle aynı sınıf hiyerarşisinde yeni nesne sınıfları oluşturan bir mekanizmadır. Kalıtımın ana yararı, kodun yeniden kullanılmasıdır. Kodu yeniden kullanmanın bir yoludur. Bir sınıfınız varsa ve belirli bir işi yapıyorsa, onu başka bir iş için de kullanabilirsiniz. Diyelim ki, bir araba ve bir kamyon aynı işi yapıyor, böylece onları sürmek için aynı kodu kullanabilirsiniz.

C++'da kalıtımın 3 kapsamı nelerdir?

C++'da kalıtımın kapsamları özel, korumalı ve geneldir. Özel kalıtım, bir sınıfın başka bir sınıftan miras alındığı ancak türetilmiş sınıfa sınıfın dışından erişilemediği yerdir. Bu tür kalıtım, yalnızca temel sınıfa sınıfın dışından erişilmesi amaçlanmadığında kullanılabilir. Korumalı kalıtım, temel sınıfa sınıfın dışından erişilmesi amaçlanmadığında ve sınıf dışından erişmesi amaçlandığında kullanılır. Genel kalıtım, temel sınıfa sınıfın dışından erişilmesi amaçlandığında kullanılır.

C++'da çoklu kalıtım nedir?

Çoklu kalıtım, birden fazla sınıftan bir sınıf türetme yeteneğidir. Bu özellik C'de mevcut değildir. Bu, C++'ın nesne yönelimli programlamayı destekleyen en önemli özelliklerinden biridir. C++'da çoklu kalıtımın uygulanması, kalıtım sınıfları kavramına dayanmaktadır. Çoklu kalıtım, davranışsal yeniden kullanım ve kodun yeniden kullanımı gibi bazı sorunları çözmek için kullanılabilen nesne yönelimli programlama modelini destekleyen bir mekanizmadır. Kodun yeniden kullanımı, C++'da her zaman bir sorun olmuştur, çünkü C++ yalnızca tek bir kalıtım desteğine sahiptir. Birden çok arabirimi bir nesnede birleştirerek çoklu kalıtım elde edilir.