Bileşik veri türü - Composite data type

İçinde bilgisayar Bilimi, bir bileşik veri türü veya bileşik veri türü herhangi biri veri tipi kullanılarak bir programda oluşturulabilir Programlama dili 's ilkel veri türleri ve diğer bileşik tipler. Bazen a denir yapı veya toplu veri türü,[1] son terim aynı zamanda diziler, listeler, vb. Bileşik bir tür oluşturma eylemi, kompozisyon. Birleşik veri türleri genellikle skaler ile karşılaştırılır değişkenler.

C / C ++ yapıları ve sınıfları

Bir yapı dır-dir C 's ve C ++ Bileşik tür kavramı, sabit bir etiketli kümeden oluşan bir veri türü alanlar veya üyeler. Bu sözde çünkü yapı bunları bildirirken kullanılan anahtar kelime; yapı veya daha doğrusu, kullanıcı tanımlı veri yapısı.[kaynak belirtilmeli ]

C ++ 'da, a arasındaki tek fark yapı ve bir sınıf varsayılandır erişim seviyesi, hangisi özel sınıflar için ve halka açık için yapıs.

Unutmayın ki sınıflar ve sınıf anahtar kelime C ++ 'da tamamen yeniydi, C programlama dili zaten kaba bir tür vardı yapıs. Tüm niyet ve amaçlar için, C ++ yapıs formu süperset C yapıs: neredeyse tüm geçerli C yapıC ++ 'lar geçerlidir yapıs aynı semantiğe sahip.

Beyanname

Bir yapı bildirim, her biri herhangi bir türe sahip olabilen bir alan listesinden oluşur. İçin gereken toplam depolama alanı yapı nesne, tüm alanların depolama gereksinimlerinin toplamı artı herhangi bir dahili dolgu malzemesi.

Örneğin:

yapı Hesap {   int hesap numarası;   kömür *İsim;   kömür *Soyadı;   yüzen denge;};

bir tür tanımlar, sevk olarak struct Hesabı. Bu türden yeni bir değişken oluşturmak için yazabiliriz struct Account myAccount;tamsayı bileşenine sahip olan, erişilen myAccount.account_numberve bir kayan nokta bileşeni, myAccount.balanceyanı sıra İsim ve Soyadı bileşenleri. Yapı hesabım dört değeri de içerir ve dört alanın tümü bağımsız olarak değiştirilebilir.

Yazmaktan beri struct Hesabı kodda tekrar tekrar kullanışsız hale gelir, typedef için daha uygun bir eşanlamlı sağlamak için C kodundaki ifade yapı.

Örneğin:

typedef yapı Account_ {   int    hesap numarası;   kömür   *İsim;   kömür   *Soyadı;   yüzen  denge;} Hesap;

C ++ kodunda, typedef kullanılarak tanımlanan türler için gerekli değildir yapı zaten normal ad alanının bir parçasıdır, bu nedenle türden biri olarak anılabilir struct Hesabı ya da sadece Hesap.

Başka bir örnek olarak, kayan nokta veri türünü kullanan üç boyutlu bir Vector bileşik türü şunlarla oluşturulabilir:

yapı Vektör {  yüzen x;  yüzen y;  yüzen z;};

Adlı bir değişken hız Birlikte Vektör bileşik tür olarak bildirilir Vektör hızı; Üyeleri hız nokta notasyonu kullanılarak erişilebilir. Örneğin, velocity.x = 5; ayarlayacaktı x bileşeni hız 5'e eşit.

Benzer şekilde, aşağıdakiler kullanılarak bir renk yapısı oluşturulabilir:

yapı Renk {  imzasız int kırmızı;  imzasız int yeşil;  imzasız int mavi;};

3B grafiklerde, genellikle her köşenin hem konumunu hem de rengini izlemeniz gerekir. Bunu yapmanın bir yolu, bir Köşe önceden oluşturulmuş olan kompozit türü kullanarak Vektör ve Renk bileşik türler:

yapı Köşe {  Vektör durum;  Renk renk;};

Örnekleme

Bir tür değişkeni oluşturun struct Vertex öncekiyle aynı biçimi kullanarak: Vertex v;

Üye erişimi

Bileşenlerine değerler atayın v böyle:

v.durum.x = 0.0;v.durum.y = 1.5;v.durum.z = 0.0;v.renk.kırmızı = 128;v.renk.yeşil = 0;v.renk.mavi = 255;

İlkel alt tür

Birincil kullanımı yapı karmaşık veri türlerinin oluşturulması içindir, ancak bazen ilkel veri türleri oluşturmak için kullanılır yapısal alt tipleme. Örneğin, Standart C[kaynak belirtilmeli ] iki yapının aynı başlangıç ​​alanlarına sahip olması durumunda, bu alanların aynı şekilde temsil edilmesini gerektirir.

yapı ifoo_old_stub {   uzun x, y;};yapı ifoo_version_42 {   uzun x, y, z;   kömür *isim;   uzun a, b, c;};geçersiz operation_on_ifoo(yapı ifoo_old_stub *);yapı ifoo_version_42 s;. . .operation_on_ifoo(&s);

doğru çalışacak.

Tip imzası

Tip imzaları (veya Fonksiyon türleri ) ilkel ve bileşik türlerden oluşturulmuştur ve bileşik türleri oluştururken türlerin kendisi olarak hizmet edebilir:

typedef yapı {    int x;    int y;} Nokta;typedef çift (*Metrik) (Nokta s1, Nokta s2);typedef yapı {    Nokta merkez;    çift yarıçap;    Metrik metrik;} Daire;

Ayrıca bakınız

Referanslar

  1. ^ Howe, Denis. "Ücretsiz Çevrimiçi Bilgisayar Sözlüğü". Google. Alındı 1 Şubat 2016.