Yapı ve Sınıf Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 4 Mayıs Ayı 2024
Anonim
C++ ile OOP -7- class ( sınıf )   ve structures ( yapılar)  arasındaki farklar
Video: C++ ile OOP -7- class ( sınıf ) ve structures ( yapılar) arasındaki farklar

İçerik


Hem yapı hem de sınıf, örnekler oluşturmak için daha fazla kullanılabilecek özelleştirilmiş bir veri türü oluşturmanın bir yolunu sağlar. C ++ bir sınıf oluşturmak için yapının rolünü genişletir. Hem yapı hem de sınıf, tüm üyelerin varsayılan olarak tüm üyelerine “genel” ve varsayılan olarak sınıfın tüm üyelerine “özel” sahip olmaları haricinde bir bütün olarak benzerdir. Karşılaştırma tablosu kullanarak yapı ve sınıf arasındaki farkı inceleyelim.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. benzerlikler
  5. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelyapıSınıf
Temel Erişim belirteci bildirilmezse, varsayılan olarak tüm üyeler herkese açıktır.Erişim belirteci bildirilmezse, varsayılan olarak tüm üyeler özeldir.
deklarasyon struct yapısı_adı {
struct_element 1 yazın;
struct_element 2 yazın;
struct_element 3 yazın;
.
.
.
};
sınıf_adı
veri üyesi;
üye işlevi;
};
örnek Yapı örneği, yapı değişkeni olarak adlandırılır.Bir sınıfın örneğine nesne denir.


Yapının Tanımı

Yapı, hepsi bir adla referans gösterilen farklı veri türlerinin değişkenlerinden oluşan bir koleksiyondur. Bir yapı bildirimi, yapının bir örneğini oluşturmak için kullanılan bir şablon oluşturur. Yapı aşağıdaki şekilde ilan edildi.

struct sname {type struct_element1; struct_element2 yazın; struct_element3 yazın; . . . } değişken1, değişken2,. . .;

“Struct” anahtar kelimesi, derleyiciye bir yapının ilan edildiğini tanımlar. 'Sname', yapıya verilen adı temsil eder. Yapı bildirimi, bir deyim olarak kabul edildiğinden, her zaman noktalı virgülle sonlandırılır. Yapının örneklerini, yukarıdaki kodda (değişken1, değişken2) yapıldığı gibi sonlandırmadan önce bildirebilirsiniz veya main () işlevindeki yapı örneğini, yapının adından önce gelen örnek adını yazarak bildirebilirsiniz.

// örnek. main () {ad S1, S2; }

Burada S1 ve S2 yapının örnekleridir. Yapının örnekleri “yapı değişkeni” olarak adlandırılır. Yapının gövdesi içinde bildirilen elemana, nokta (.) Operatörü kullanılarak yapı değişkenleriyle erişilebilir.


// örnek S1. struct_element1;

  • Yapı dizisi de oluşturulabilir, bunun için önce bir yapı tanımlamanız ve ardından bu tip bir dizi bildirmeniz gerekir.

// örnek yapı sname sarray;

Above ifadesi, on değişken içeren ray sarray ’adında bir dizi oluşturur ve her değişken‘ sname’de tanımlandığı şekilde düzenlenir.

  • Bir yapı üyesini bir işleve iletebilir ve tüm yapıyı işleve iletebilirsiniz.
  • Tamsayı işaretçisi, dizi işaretçisi gibi bir yapı işaretçisi, yapı değişkenleri adının önüne ‘*’ koyarak da bildirilebilir.

// örnek yapı adı. * S1;

Not:

"Yapı" elemanları bitişik bir hafıza konumunda saklanır.

Sınıfın Tanımı

OOP sınıfında, sınıfın veri üyelerine erişmek için kullanılan veri üyelerini ve üye işlevini içeren yeni bir tür tanımlanır. Sınıfların örnekleri, her biri bir sınıfla aynı organizasyona sahip olan “nesneler” olarak adlandırılır. Sınıf mantıksal bir soyutlamadır, oysa nesnenin fiziksel bir varlığı vardır. Sınıf, sözdizimsel olarak yapıya benzer. Sınıf aşağıdaki şekilde ilan edilebilir.

sınıf class_name {özel veri üyeleri ve üye işlevleri. access_specifier türü data_member; mem_funct (parametre listesi) yazın {. . }} nesne listesi;

Burada, sınıf derleyiciye bir sınıfın ilan edildiğini bildiren bir anahtar kelimedir. OOP'nin ana özelliği, “kamu”, “özel”, “korumalı” olan üç erişim belirteci sağlayarak elde edilen veri gizlemedir. Veri üyelerini veya üye işlevlerini bildirirken sınıfta herhangi bir erişim belirteci belirtmezseniz, varsayılan olarak tümü özel olarak kabul edilir. Genel erişim belirteci, programın diğer bölümleri tarafından erişilen işlevlere veya verilere izin verir. Sınıfın özel üyelerine sadece o sınıfın bir üyesi tarafından erişilebilir. Korumalı erişim belirteci miras sırasında uygulanır. Erişim belirtecini bildirdikten sonra, program boyunca değiştirilemez.

Nesneler, sınıfların örneğinden başka bir şey değildir. Sınıf üyelerine bir nokta (.) Operatörü kullanarak aynı sınıfın nesnesi tarafından erişilebilir.

//object.mem_funct (argümanlar);

  • Nesne ayrıca bir işleve argüman olarak da iletilebilir.
  • Bir nesneye işaretçi de oluşturulabilir.
  1. Yapılar ve sınıflar arasındaki temel fark, varsayılan olarak, yapının tüm üyelerinin halka açık olması ve varsayılan olarak sınıfın tüm üyelerinin özel olmasıdır.

benzerlikler:

  • C ++ 'da hem yapı hem de sınıf sözdizimsel olarak eşdeğerdir.
  • Hem yapı hem de sınıf üyelerinden bazılarını özel ilan edebilir.
  • Bir yapının veya sınıfın adı, bağımsız bir tür olarak kullanılabilir.
  • Hem yapı hem de sınıf, miras mekanizmasını destekler.

Sonuç:

C'deki yapı, yapı veri gizlemesine izin vermediğinden, “yapı” veri türü yerleşik tipler gibi değerlendirilemediğinden, yapılar miras almayı desteklemediğinden bazı kısıtlamaları vardı. C ++ 'daki yapı bu sınırlamaları aştı. C ++ 'da sınıflar yapının genişletilmiş versiyonudur. Programcı, veriyi tutmak için sınıfın kullanılmasını ve hem veriyi hem de fonksiyonunu ve sadece veriyi tutmak için yapmayı kolay bulur.