C++ User Defined Veri Tipi

by ck
0 yorum

C++’daki veri tipleri üç grupta sınıflandırılır: User defined, Derived ve Built-in/ Primitive.



2- User Defined veri tipi

  • Class (Sınıf) :

    Sınıf, bir hedefler topluluğudur. Kullanıcı tanımlı bir toplu veri türüdür. Bir sınıf, aynı işlemlere ve niteliklere sahip bir nesne grubu olarak tanımlanabilir. “Sınıf”, C++ programlamasındaki bir anahtar kelimedir. Kullanıcı çeşitli nesnelerle uğraşmak yerine sınıflarla ilgilenir.

    Syntax (Sözdizimi):

class Player {
   public:
      double length;
      string name; 
};

Örnek:

#include <iostream>
#include <string>
using namespace std;

// Player class tanımı
class Player
{
//Erişim belirteci
public:
    //Değişken tanılama
    string myName; 
   //Player sınıfının mesajını görüntüleyen fonksiyonu
   void SetMessage()
   {
      cout << "'Message' metodu çalıştı! Oyuncu adı:"<< myName << endl;
   } 
}; 

// Main fonksiyonu programın yürütülmesini başlatır
int main()
{
   Player _plyr; // _plyr adlı bir Player nesnesi oluşturduk
   _plyr.myName="Caner"; //'myName' değişkenine değer ataması yaptık
   _plyr.SetMessage(); //'SetMessage' fonksiyonunu çağırdık
   return 0;
}

Çıktı:

'Message' metodu çalıştı! Oyuncu adı:
  • Structure(Yapı)

    Yapı, C / C ++ ‘da kullanıcı tanımlı bir veri türüdür. Bir yapı, muhtemelen farklı türdeki öğeleri tek bir türde gruplamak için kullanılabilecek bir veri türü oluşturur.

    Syntax (Sözdizimi):

struct Player
{
     char name[50];
     int age;
     float salary;
     char city[50];
};

Örnek:

#include <iostream>
using namespace std;

struct Player
{
    char name[50];
    float weight;
    int age; 
};

int main()
{
    Player plyr;
    
    cout << "Oyuncu Adı: ";
    cin.get(plyr.name, 50);
    cout << "Oyuncu Kilosu: ";
    cin >> plyr.weight;
     cout << "Oyuncu Yaşı: ";
    cin >> plyr.age;
    
    cout << "\nOyuncu Bilgileri" << endl;
    cout << "Adı: " << plyr.name << endl;
    cout <<"Kilosu: " << plyr.weight << endl;
    cout <<"Yaşı: " << plyr.age << endl;
    return 0;
}

Çıktı:

Oyuncu Adı: Caner                                                                                                                                           
Oyuncu Kilosu: 65                                                                                                                                           
Oyuncu Yaşı: 28                                                                                                                                             
                                                                                                                                                            
Oyuncu Bilgileri                                                                                                                                           
Adı: Caner                                                                                                                                                  
Kilosu: 65                                                                                                                                                  
Yaşı: 28   
  • Union(Birlik)

    Hem yapı hem de birleşim, farklı veri türlerinin toplanmasıdır. Farklı tipteki değişkenlerin sayısını tek bir ünitede gruplamak için kullanılırlar. Union bildirimi union anahtar kelimesi ve ardından union adı ile başlamalı ve union üye değişkenleri parantez içinde bildirilmelidir.

    Syntax (Sözdizimi):

union Player
{
    char name[50];
    float weight;
    int age; 
};

Örnek:

#include<iostream>
using namespace std;

union Player
{
    char name[50];
    float weight;
    int age; 
};

int main()
{

    Player plyr;
    
    cout << "Oyuncu Adı: ";
    cin >> plyr.name;
    cout << "Oyuncu Kilosu: ";
    cin >> plyr.weight;
    cout << "Oyuncu Yaşı: ";
    cin >> plyr.age;
    
    cout << "Adı: " << plyr.name << endl;
    cout << "Kilosu: " << plyr.weight << endl;
    cout << "Yaşı: " << plyr.age << endl;
    return 0;
}

Giriş:

Oyuncu Adı: Caner                                                                                                                                           
Oyuncu Kilosu: 45.7                                                                                                                                         
Oyuncu Yaşı: 23

Çıktı:

Adı:                                                                                                                                                        
Kilosu: 3.22299e-44                                                                                                                                         
Yaşı: 23

Yukarıdaki örnekte, değişkene atanan son değer bellek konumunu işgal ettiğinden, enum name ve kilo değerlerinin bozulduğunu görebiliriz. Şimdi aynı örneğe bir kez daha bakalım, burada bir değişime sahip olmanın temel amacı olan bir değişkeni kullanacağız:

Örnek:

#include<iostream>
using namespace std;

union Player
{
    char name[50];
    float weight;
    int age; 
};

int main()
{

    Player plyr;
    
    cout << "Oyuncu Adı Giriniz: ";
    cin >> plyr.name;
    cout << "Adı: " << plyr.name << endl;
    
    cout << "Oyuncu Kilosu Giriniz: ";
    cin >> plyr.weight;
    cout << "Kilosu: " << plyr.weight << endl;

    cout << "Oyuncu Yaşı Giriniz: ";
    cin >> plyr.age;
    cout << "Yaşı: " << plyr.age << endl;
    return 0;
}

Çıktı:

Oyuncu Adı Giriniz: Caner                                                                                                                                   
Adı: Caner                                                                                                                                                  
Oyuncu Kilosu Giriniz: 54.86                                                                                                                                
Kilosu: 54.86                                                                                                                                               
Oyuncu Yaşı Giriniz: 37                                                                                                                                     
Yaşı: 37                                                                                                                                       

Union ve structure büyüklüğünü karşılaştırma örneği

Örnek:

#include<iostream>
using namespace std;

union Player1
{
    char name[50];
    float weight;
    int age; 
};

struct Player2
{
    char name[50];
    float weight;
    int age; 
};

int main()
{
	cout << "Player1 boyutu : " << sizeof(Player1) << endl;
	cout << "Player2 boyutu : " << sizeof(Player2) << endl;
	
    return 0;
}

Çıktı:

Player1 boyutu : 52                                                                                                                                         
Player2 boyutu : 60
  • Enum (Numaralandırma)

    Enum(veya  Enumeration) C’de kullanıcı tanımlı bir veri türüdür. Temel olarak integral sabitlere ad atamak için kullanılır, adlar bir programı okumayı ve bakımını kolaylaştırır.

    Syntax (Sözdizimi):

enum Durum {Baslat = 1, Durdur = 0};

Örnek:

#include <iostream>  
using namespace std;  

enum hafta { Pazartesi, Sali, Carsamba, Persembe, Cuma, Cumartesi, Pazar };  

int main()  
{  
    hafta gun;  
    gun = Persembe;  
    cout << "Bugün: " << gun<<endl;  
    return 0;  
}  

Çıktı:

Bugün: 3

Not: Yukarıdaki kod bloğunda şayet enum değeri atanmadığı taktirde 0,1,2,3 şeklinde başlangıç değerlerine sahiptir. Şimdi değerleri değiştirilmiş enum değişkenlerini aşağıdaki örnekle inceleyelim.

Örnek:

#include <iostream>  
using namespace std;  

enum durum { Baslat=11, Durdur=10, Beklet = 22 };  

int main()  
{  
    durum drm;  
    drm = Durdur;  
    cout << "Durum:  " << drm <<endl;  
    return 0;  
}  

Sonuç:

Durum: 10
  • Typedef

    C++, typedef anahtar sözcüğünü kullanarak açıkça yeni veri türü adları tanımlamanızı sağlar. Typedef kullanmak aslında yeni bir veri sınıfı oluşturmaz, bunun yerine mevcut bir tür için yeni bir ad tanımlar. Bu, yalnızca typedef deyimlerinin değiştirilmesi gerektiğinden bir programın taşınabilirliğini artırabilir.

    Typedef kullanmak, standart veri türleri için açıklayıcı adlara izin vererek kodunuzun kendi kendini belgelemesine de yardımcı olabilir.

    Syntax (Sözdizimi):

typedef float name;

Örnek:

#include <iostream> 
using namespace std; 
  
typedef int numbers; 
  
int main() 
{ 
	numbers x,y,total;
	cout<<"İki sayı girin: \n";
	cin >> x >> y;
	total = x * y;
	cout << "\nÇarpma işleminin sonucu: " << total << endl;
	return 0;
}

Giriş:

İki sayı girin:                                                                                                                                             
12 4  

Çıktı:

Çarpma işleminin sonucu: 48       

Şunlar da hoşunuza gidebilir

Yorum Yap

Web sitemizde size en iyi deneyimi sunabilmemiz için çerezleri kullanıyoruz. Bu siteyi kullanmaya devam ederseniz, bunu kabul ettiğinizi varsayarız. Kabul Et Gizlilik Politikası