8 Şubat 2014

C++'ta Class Oluşturma ve Kullanma

Merhabalar;

Örneğimizi gün/ay/yıl ile oluşturacağımız bir Date class'ı üzerinden yapacağız. Öncelikle bir header dosyası oluşturmamız gerek. Sonra bu header'ı kullanacağız.

// Date.h
// Date Class'ı Tanımı

 class Date
 {
 public:
        Date(int, int, int); // constructor
        void setMonth(int); // ayı ayarla
        int getMonth(); // ayı döndür
        void setDay(int); // günü ayarla
        int getDay(); // günü döndür
        void setYear(int); // yılı ayarla
        int getYear(); // yılı döndür
        void displayDate(); // tarihi mm/dd/yyyy formatında yaz
 private:
        int month; // tarihin ayı
        int day; // tarihin günü
        int year; // tarihin günü

 }; // Date class'ı bitişi


Public üyelere erişim her yerden olabiliyorken private üyelere erişim sadece ilgili class içindeki public üye fonksiyonlarımızda olabilmektedir.

Date.cpp'de de public tanımladığım üye fonksiyonları ve private tanmladığım üye değişkenlerin ayarlamalarını yapıyorum:

// Date.cpp
// Date class'ı üye fonksiyonları

#include <iostream>
#include "Date.h"   // Date.h'tan Date class'ını dahil ediyoruz

using namespace std;

// Date constructor 3 üyeyi initialize ediyor
// Değerlerin doğru girildiğini varsayıyoruz:
Date::Date(int m, int d, int y)
{
       setMonth(m);
       setDay(d);
       setYear(y);
}

// ayı ayarla
void Date::setMonth(int m)
{
       // bu kısım istenildiği gibi ayarlanabilir, ben yanlış değer girince 1'e ayarlama    // yaptım
       month = m;
       if (month < 1)
             month = 1;
       if (month > 12)
             month = 1;
}

// ayı döndür
int Date::getMonth()
{
       return month;
}

// günü ayarla
void Date::setDay(int d)
{
       // bu kısım da istenildiği gibi ayarlanabilir. En büyük ay günü 31 ve en küçük ay
// günü 28
       day = d;
}

// günü döndür
int Date::getDay()
{
       return day;
}

// yılı ayarla
void Date::setYear(int y)
{
       year = y;
}

// yılı döndür
int Date::getYear()
{
       return year;
}

// tarihi mm/dd/yyyy formatında yaz
void Date::displayDate()
{
       cout << month << '/' << day << '/' << year << endl;
}


Main kısmını da istediğiniz gibi düzenleyebilirsiniz. Programı burada test edeceğimiz için istediğimiz gibi kurcalayabiliriz. Ben şöyle yaptım:

// Main.cpp

#include <iostream>
#include "Date.h"   // Date.h'tan Date class'ını dahil ediyoruz

using namespace std;

int main()
{
       Date date(4, 26, 1990); // bir Date nesnesi yaratıyoruz, tarihi 26 Nisan 1990

       cout << "Ay: " << date.getMonth() << endl;
       cout << "Gun: " << date.getDay() << endl;
       cout << "Yil: " << date.getYear() << endl;
       cout << "\nTarih:" << endl;
       date.displayDate(); // çıktısı 4/26/1990

   
       date.setMonth(16); // geçersiz ay
       date.setDay(21);
       date.setYear(2001);
      
       cout << "\nYeni tarih:" << endl;
       date.displayDate();
       system("Pause");
       return 0;
}  


Çıktı ise şöyle:



Dediğim gibi geçersiz gün ve ay hesabını yapmadım, onu da size ödev olarak bırakayım. J

Hoşçakalın.


3 yorum:

  1. teşekkürler...
    birde class larda inheritance yani kalıtım miras ile ilgili ufak bir program yazarsanız iyi olur..yani c++ da class lar arasında nasıl veri aktarımı yapıldıgıyla ilgili, mantıgı anlamak açısından..

    YanıtlaSil
    Yanıtlar
    1. Rica ederim.
      En kısa sürede değerlendirmeye çalışacağım önerinizi.

      Sil
  2. Çok teşekkürler başarılı bir anlatım olmuş.

    YanıtlaSil