C++'da sınıflar ve yapılar, bir sınıfın örneğini oluşturmak için kullanılan planlardır. Yapılar Dikdörtgen, renk, Nokta vb. gibi hafif nesneler için kullanılır.
Sınıfın aksine, C++'daki yapılar referans türünden ziyade değer türündedir. Yapı oluşturulduktan sonra değiştirilmesi amaçlanmayan verileriniz varsa kullanışlıdır.
Java'yı dilimleme
C++ Yapısı farklı veri türlerinin bir koleksiyonudur. Farklı veri türlerini tutan sınıfa benzer.
Yapının Söz Dizimi
struct structure_name { // member declarations. }
Yukarıdaki bildirimde, bir yapı, önce gelen bir yapıyla bildirilir. anahtar kelime yapı ardından tanımlayıcı (yapı adı) gelir. Kıvrımlı parantezlerin içinde farklı türlerdeki üye değişkenleri bildirebiliriz. Aşağıdaki durumu göz önünde bulundurun:
struct Student { char name[20]; int id; int age; }
Yukarıdaki durumda, Öğrenci adı, kimliği ve yaşı olmak üzere üç değişken içeren bir yapıdır. Yapı bildirildiğinde bellek tahsis edilmez. Bir yapının değişkeni oluşturulduğunda bellek tahsis edilir. Bu senaryoyu anlayalım.
Yapı örneği nasıl oluşturulur?
Yapı değişkeni şu şekilde tanımlanabilir:
Öğrenciler;
bilgisayar ekranımın boyutları nedir
Burada s tipinde bir yapı değişkenidir Öğrenci . Yapı değişkeni oluşturulduğunda bellek tahsis edilecektir. Öğrenci yapısı bir karakter değişkeni ve iki tam sayı değişkeni içerir. Bu nedenle, bir char değişkeni için bellek 1 byte, iki int ise 2*4 = 8 olacaktır. s değişkeninin kapladığı toplam bellek 9 byte'tır.
Yapı değişkenine nasıl erişilir:
Yapının değişkenine basitçe yapının örneği, ardından nokta (.) operatörü ve ardından yapının alanı kullanılarak erişilebilir.
Örneğin:
s.id = 4;
Yukarıdaki ifadede student yapısının id alanına aşağıdaki komutu kullanarak ulaşıyoruz. nokta(.) operatörünü kullanır ve id alanına 4 değerini atar.
C++ Yapı Örneği
Genişliği ve yüksekliği iki veri üyesi olan Dikdörtgen yapısının basit bir örneğini görelim.
dize oluşturucu java
#include using namespace std; struct Rectangle { int width, height; }; int main(void) { struct Rectangle rec; rec.width=8; rec.height=5; cout<<'area of rectangle is: '<<(rec.width * rec.height)<<endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 40 </pre> <h2>C++ Struct Example: Using Constructor and Method</h2> <p>Let's see another example of struct where we are using the constructor to initialize data and method to calculate the area of rectangle.</p> <pre> #include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout<<'area of rectangle is: '<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</td> </tr> </table></'area></pre></'area>
C++ Yapı Örneği: Yapıcı ve Yöntem Kullanma
Verileri başlatmak için yapıcıyı ve dikdörtgenin alanını hesaplamak için yöntemi kullandığımız başka bir yapı örneğine bakalım.
#include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout<<\'area of rectangle is: \'<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</td> </tr> </table></\'area>
Yapı ve Sınıf
Yapı | Sınıf |
---|---|
Erişim belirticisi açıkça bildirilmezse, varsayılan olarak erişim belirticisi genel olacaktır. | Erişim belirticisi açıkça bildirilmezse, varsayılan olarak erişim belirticisi özel olacaktır. |
Yapının Sözdizimi: yapı yapı_adı { // yapının gövdesi. } | Sınıfın Sözdizimi: sınıf sınıf_adı { //sınıfın gövdesi. } |
Yapının örneği 'Yapı değişkeni' olarak bilinir. | Sınıfın örneği 'sınıfın nesnesi' olarak bilinir. |