Dalam artikel ini, kita akan membincangkan konsep pewarisan dalam pengaturcaraan C ++. Kami akan menerangkan konsep fungsi rakan dalam C ++ dengan contoh kerja.
Mengapa Warisan?
Warisan membolehkan mewujudkan kelas baru atau kelas turunan dari kelas lain atau kelas asas. Kelas yang berasal atau kelas anak akan mempunyai semua ciri kelas induk atau kelas asas. Kita boleh menggunakan semula kod tersebut dengan bantuan pewarisan.
Jenis Warisan
Terdapat pelbagai jenis warisan:
- Warisan Sederhana / Tunggal
- Warisan Hierarki
- Warisan Bertingkat
- Warisan Pelbagai
Dalam artikel ini, kita akan mempertimbangkan hanya warisan sederhana / tunggal.
Contoh 1:
Sekarang, mari kita teliti program contoh untuk memahami konsep pewarisan di C++. Kami telah menentukan kelas asas dan kemudian memperoleh kelas lain daripadanya. Oleh itu, kelas yang diturunkan akan mempunyai ciri (anggota dan fungsi) dari kelas asas.
#sertakanmenggunakan ruang nama std;
kelas Base_Class
awam:
int i;
paparan kosong ()
cout << "Display of Base Class " << i << endl;
;
kelas Derived_Class: public Base_Class
awam:
pertunjukan batal ()
cout << "Show of Derived Class" << endl;
;
int utama ()
Derived_Class dc;
dc.i = 100;
dc.paparan ();
dc.tunjuk ();
pulangan 0;
Contoh 2:
Ini adalah contoh warisan lain di C++. Dalam contoh ini, kita akan melihat bagaimana konstruktor dipanggil ketika objek kelas turunan dibuat.
Seperti yang anda lihat di bawah, kami telah menentukan dua pembina kelas asas dan tiga pembina kelas turunan. Anda dapat melihat dengan jelas dari output di bawah bahawa konstruktor kelas asas dipanggil terlebih dahulu sebelum konstruktor kelas turunan dipanggil.
#sertakan#sertakan
menggunakan ruang nama std;
kelas Base_Class
awam:
Dasar_Kelas ()
cout << "Base_Class - No Parameters" << endl;
Base_Class (int x)
cout << "Base_Class - Parameters : " << x << endl;
;
kelas Derived_Class: public Base_Class
awam:
Berasal_Kelas ()
cout << "Derived_Class - No Parameters" << endl;
Derived_Class (int y)
cout << "Derived_Class - Parameters : " << y << endl;
Derived_Class (int x, int y): Base_Class (x)
cout << "Param of Derived_Class : " << y << endl;
;
int utama ()
Derived_Class d (7,19);
Contoh 3:
Dalam contoh ini, kita akan melihat bagaimana objek kelas turunan dapat digunakan.
Seperti yang anda lihat, terdapat dua kelas yang ditentukan: Rectangle_Class dan Cube_Class. Rectangle_Class adalah kelas asas dari mana kelas turunannya, i.e., Cube_Class diturunkan. Oleh itu, kami mewarisi ciri dari Rectangle_Class hingga Cube_Class.
Anda juga dapat melihat bahawa kami mewarisi Cube_Class dengan kawalan akses awam. Ini bermaksud bahawa kelas yang diturunkan dapat mengakses semua anggota kelas asas bukan swasta.
Kami telah menyatakan objek dari kelas turunan, dan kemudian memanggil kaedah dari kelas asas, i.e., setLength () dan setBreadth ().
#sertakanmenggunakan ruang nama std;
kelas Rectangle_Class
peribadi:
panjang int;
keluasan int;
awam:
Rectangle_Class ();
Rectangle_Class (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()
panjang pulangan;
int getBreadth ()
pulangan luas;
kekosongan setLength (int l);
batal setBreadth (int b);
kawasan int ();
;
kelas Cube_Class: Rectangle_Class awam
peribadi:
tinggi int;
awam:
Cube_Class (int h)
tinggi = h;
int getHeight ()
ketinggian pulangan;
batal set Tinggi (int h)
tinggi = h;
isi padu ()
return getLength () * getBreadth () * tinggi;
;
Rectangle_Class :: Rectangle_Class ()
panjang = 1;
luas = 1;
Rectangle_Class :: Rectangle_Class (int l, int b)
panjang = l;
luas = b;
Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)
panjang = r.panjang;
luas = r.keluasan;
kekosongan Rectangle_Class :: setLength (int l)
panjang = l;
kekosongan Rectangle_Class :: setBreadth (int b)
luas = b;
int Rectangle_Class :: kawasan ()
panjang pulangan * lebar;
int utama ()
Cube_Class c (8);
c.setLength (12);
c.setBreadth (9);
cout<<"Volume is "<
Kesimpulan:
Dalam artikel ini, saya telah menerangkan konsep Warisan di C++. C ++ menyokong pelbagai jenis warisan termasuk "pelbagai warisan" (i.e., mewarisi ciri dari pelbagai kelas asas atau kelas induk). Namun, untuk menjadikannya lebih mudah, saya hanya menganggap warisan tunggal di sini. Saya telah menunjukkan tiga contoh kerja untuk menerangkan bagaimana kita dapat menggunakan warisan dalam pengaturcaraan C ++ dan menggunakan semula kodnya. Lebih-lebih lagi, ini adalah ciri C yang sangat berguna++.