Tavsiye, 2024

Editörün Seçimi

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

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.

Karşılaştırma Tablosu

Karşılaştırma için temelyapıSınıf
TemelErişim belirteci bildirilmezse, varsayılan olarak tüm üyeler "genel" dir.Erişim belirteci bildirilmezse, varsayılan olarak tüm üyeler 'özel' olur.
deklarasyonstruct 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ğine 'yapı değişkeni' denir.'Sınıf' ö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 sözcüğü, derleyiciye bir yapının ilan edildiğini tanımlar. 'Sname' yapıya verilen adı temsil eder. Yapı bildirimi, her zaman bir deyim olarak kabul edildiği gibi 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 bildirebilir ya da yapının örneğini, yapının adından önce gelen örnek adını yazarak belirtebilirsiniz.

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

Burada S1 ve S2 yapının örnekleridir. Yapının örnekleri “yapı değişkeni” olarak adlandırılır. Yapı 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ı snad sarray [10]; 

Above deyimi, on değişken içeren 'sarray' adında bir dizi oluşturur ve her değişken, 'sname' içinde 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 '*' yerleştirilerek de 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şilmesine, 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ü kullanılarak aynı sınıfın nesnesi tarafından erişilir.

 //object.mem_funct (argümanlar); 
  • Nesne ayrıca bir işleve argüman olarak da iletilebilir.
  • Bir nesneye işaretçi de oluşturulabilir.

Yapı ve Sınıf Arasındaki Temel Farklılıklar

  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 olarak 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 gizlemeye izin vermediğinden, 'yapı' veri türü yerleşik tipler gibi değerlendirilemediğinden, yapıların kalıtımsal desteklemediğinden, bazı kısıtlamaları vardır. 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 buluyor.

Top