C ++

Warisan C ++

Warisan C ++
Warisan adalah ciri yang sangat penting dari pengaturcaraan berorientasikan objek. Ini membolehkan pengaturcara memperoleh kelas dari kelas yang ada. Ini sangat berguna terutamanya dalam projek kompleks yang besar kerana membolehkan pengaturcara menggunakan semula kod tersebut.

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:

  1. Warisan Sederhana / Tunggal
  2. Warisan Hierarki
  3. Warisan Bertingkat
  4. 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.

#sertakan
menggunakan 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 ().

#sertakan
menggunakan 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++.

Vulkan untuk Pengguna Linux
Dengan setiap kad grafik generasi baru, kami melihat pembangun permainan mendorong had kesetiaan grafik dan semakin dekat dengan fotorealisme. Tetapi ...
OpenTTD vs Simutrans
Membuat simulasi pengangkutan anda sendiri boleh menyeronokkan, santai dan sangat menarik. Itulah sebabnya anda perlu memastikan bahawa anda mencuba s...
Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...