C++ Polimorfizm Yapısı Nedir? [Çok Biçimlilik]
  1. Anasayfa
  2. Programlama

C++ Polimorfizm Yapısı Nedir? [Çok Biçimlilik]

0

Nesne tabanlı programlama ile uğraşanların ilk öğrendikleri konulardan biri de, inheritance ve polymorphism konularıdır. Çok biçimlilik büyük projelerde sizlere kolaylık sağlar.

Şimdi ben bir örnek hazırladım. Bu örneği inceleyelim.

Bize ait tekerlek üreten bir firmamız var. Müşteri gelip tekerleğin çapını ve kalınlığını girdiği zaman, tekerin boyutlarına göre bisiklet tekeri ya da araba tekeri olduğunu bize söylüyor. Eğer belirttiğimiz aralıklar dışındaysa eğer, aralık dışında olduğunu belirtiyor.

Bunun için Tekerlek Firması adında ana sınıf oluşturdum. Alt sınıflar olarak ise, Bisiklet Tekeri ve Araba Tekeri diye iki sınıf oluşturdum. Bu sınıflarda değişken tanımlamasını gerçekleştirdim. Oluşturduğum Control adlı fonksiyon ile girilen tekerlek boyutlarını kontrol ettirdim. Main metot kısmında ise girilen değerleri değişkenlere eşitleyip kontrol fonksiyonundan geçişini sağladım.

#include <iostream>
#include <string>

using namespace std;

 
 class tekerlekfirmasi{
  protected:
   int cap,kalinlik;
  public:
   tekerlekfirmasi(int a = 0, int b = 0){
    cap = a;
    kalinlik = b;
   }
   void control(){
    if(( cap >= 2 && cap <= 40) && (kalinlik >= 10 && kalinlik <= 20))
    cout << "Bisiklet Tekeridir"<< endl;
    else if(( cap >= 20 && cap <= 60) && (kalinlik >= 50 && kalinlik <= 70))
    cout << "Araba Tekeridir"<< endl;
    else
    cout << "Aralik Disidir"<< endl;
   }
 };
 
 class bisiklettekeri: public tekerlekfirmasi{
    public:
       bisiklettekeri(int a=0, int b=0):tekerlekfirmasi(a, b) { }
 };
 
 class arabatekeri: public tekerlekfirmasi{
    public:
       arabatekeri(int a=0, int b=0):tekerlekfirmasi(a, b) { }
 };
 
int main( )
{
   int cap = 0, kalinlik = 0;
   tekerlekfirmasi *t;
   
   cout << "Cap girin: ";
   cin >> cap;
   cout << endl << "Kalinlik girin: ";
   cin >> kalinlik;
   
   bisiklettekeri bt(cap, kalinlik);

   t = &bt;
   t->control();
   
    arabatekeri at(cap, kalinlik);

 t = &at;

 t->control();
   
   return 0;
}

 

Bu Yazıya Tepkiniz Ne Oldu?
  • 0
    be_endim
    Beğendim
  • 0
    alk_l_yorum
    Alkışlıyorum
  • 0
    e_lendim
    Eğlendim
  • 0
    d_nceliyim
    Düşünceliyim
  • 0
    _rendim
    İğrendim
  • 0
    _z_ld_m
    Üzüldüm
  • 0
    _ok_k_zd_m
    Çok Kızdım
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir