Karşılaştırma Tablosu
Karşılaştırma için temel | yapı | Sınıf |
---|---|---|
Temel | Erişim belirteci bildirilmezse, varsayılan olarak tüm üyeler "genel" dir. | Erişim belirteci bildirilmezse, varsayılan olarak tüm üyeler 'özel' olur. |
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ğ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
- 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.