Warisan C++

C Inheritance



Warisan adalah fitur yang sangat penting dari pemrograman berorientasi objek. Hal ini memungkinkan programmer untuk menurunkan kelas dari kelas yang ada. Ini sangat berguna terutama dalam proyek besar yang kompleks karena memungkinkan pemrogram untuk menggunakan kembali kode tersebut.

Pada artikel ini, kita akan membahas konsep pewarisan dalam pemrograman C++. Kami akan menjelaskan konsep fungsi teman di C++ dengan contoh kerja.







Mengapa Warisan?

Warisan memungkinkan membuat kelas baru atau kelas turunan dari kelas lain atau kelas dasar. Kelas turunan atau kelas anak akan memiliki semua fitur dari kelas induk atau kelas dasar. Kita dapat menggunakan kembali kode dengan bantuan warisan.



Jenis Warisan

Ada berbagai jenis warisan:



  1. Warisan Sederhana/Tunggal
  2. Warisan Hirarkis
  3. Warisan Bertingkat
  4. Banyak Warisan

Dalam artikel ini, kita hanya akan mempertimbangkan pewarisan sederhana/tunggal.





Contoh 1:

Sekarang, mari kita lihat contoh program untuk memahami konsep pewarisan dalam C++. Kami telah mendefinisikan kelas dasar dan kemudian menurunkan kelas lain darinya. Oleh karena itu, kelas turunan akan memiliki fitur (anggota dan fungsi) dari kelas dasar.

#termasuk

menggunakan namespace std;

kelas Base_Class
{
publik:
ke dalamSaya;
ruang kosongmenampilkan()
{
biaya<< 'Tampilan Kelas Dasar' <<Saya<<akhir;
}

};

Kelas Turunan_Kelas:Base_Class publik
{
publik:
ruang kosongmenunjukkan()
{
biaya<< 'Pertunjukan Kelas Turunan' <<akhir;
}
};

ke dalamutama()
{
Kelas_Derivasi dc;
dc.Saya = 100;
dc.menampilkan();
dc.menunjukkan();

kembali 0;
}



Contoh 2:

Ini adalah contoh lain dari pewarisan dalam C++. Dalam contoh ini, kita akan melihat bagaimana konstruktor dipanggil ketika objek kelas turunan dibuat.

Seperti yang Anda lihat di bawah, kami telah mendefinisikan dua konstruktor kelas dasar dan tiga konstruktor kelas turunan. Anda dapat dengan jelas melihat dari output di bawah ini bahwa konstruktor kelas dasar dipanggil terlebih dahulu sebelum konstruktor kelas turunan dipanggil.

#termasuk
menggunakan namespace std;

kelas Base_Class
{
publik:
Kelas_Basis()
{
biaya<< 'Base_Class - Tanpa Parameter' <<akhir;
}
Kelas_Basis(ke dalamx)
{
biaya<< 'Base_Class - Parameter : ' <<x<<akhir;
}
};

Kelas Turunan_Kelas:Base_Class publik
{
publik:
Kelas_Berasal()
{
biaya<< 'Derived_Class - Tanpa Parameter' <<akhir;
}
Kelas_Berasal(ke dalamdan)
{
biaya<< 'Derived_Class - Parameter : ' <<dan<<akhir;
}
Kelas_Berasal(ke dalamx,ke dalamdan):Kelas_Basis(x)
{
biaya<< 'Param dari Kelas_Berasal : ' <<dan<<akhir;
}
};

ke dalamutama()
{
Turunan_Kelas d(7,19);
}

Contoh 3:

Dalam contoh ini, kita akan melihat bagaimana objek kelas turunan dapat digunakan.

Seperti yang Anda lihat, ada dua kelas yang didefinisikan: Rectangle_Class dan Cube_Class. Rectangle_Class adalah kelas dasar dari mana kelas turunan, yaitu, Cube_Class berasal. Oleh karena itu, kami mewarisi fitur dari Rectangle_Class ke Cube_Class.

Juga, Anda dapat melihat bahwa kami mewarisi Cube_Class dengan kontrol akses publik. Ini berarti bahwa kelas turunan dapat mengakses semua anggota non-pribadi dari kelas dasar.

Kami telah mendeklarasikan objek dari kelas turunan, dan kemudian memanggil metode dari kelas dasar, yaitu setLength() dan setBreadth().

#termasuk

menggunakan namespace std;

kelas Rectangle_Class
{
pribadi:
ke dalampanjang;
ke dalamluasnya;
publik:
Rectangle_Class();
Rectangle_Class(ke dalamNS,ke dalamB);
Rectangle_Class(Rectangle_Class&R);
ke dalamdapatkanPanjang()
{
kembalipanjang;
}
ke dalamdapatkan luasnya()
{
kembaliluasnya;
}
ruang kosongsetPanjang(ke dalamNS);
ruang kosongsetLebar(ke dalamB);
ke dalamdaerah();
};

kelas Cube_Class:Rectangle_Class publik
{
pribadi:
ke dalamtinggi;
publik:
Kelas_Kubus(ke dalamH)
{
tinggi=H;
}
ke dalamdapatkanTinggi()
{
kembalitinggi;
}
ruang kosongsetTinggi(ke dalamH)
{
tinggi=H;
}
ke dalamvolume()
{
kembalidapatkanPanjang()*dapatkan luasnya()*tinggi;
}
};


Rectangle_Class::Rectangle_Class()
{
panjang=1;
luasnya=1;
}
Rectangle_Class::Rectangle_Class(ke dalamNS,ke dalamB)
{
panjang=NS;
luasnya=B;
}
Rectangle_Class::Rectangle_Class(Rectangle_Class&R)
{
panjang=R.panjang;
luasnya=R.luasnya;
}
ruang kosongRectangle_Class::setPanjang(ke dalamNS)
{
panjang=NS;
}
ruang kosongRectangle_Class::setLebar(ke dalamB)
{
luasnya=B;
}
ke dalamRectangle_Class::daerah()
{
kembalipanjang*luasnya;
}

ke dalamutama()
{
Kelas_Kubus c(8);
C.setPanjang(12);
C.setLebar(9);
biaya<<'Volume adalah'<<C.volume()<<akhir;
}

Kesimpulan:

Pada artikel ini, saya telah menjelaskan konsep Warisan dalam C++ . C++ mendukung berbagai jenis pewarisan termasuk pewarisan berganda (yaitu, mewarisi fitur dari beberapa kelas dasar atau kelas induk). Namun, untuk membuatnya lebih sederhana, saya hanya mempertimbangkan warisan tunggal di sini. Saya telah menunjukkan tiga contoh kerja untuk menjelaskan bagaimana kita dapat menggunakan pewarisan dalam pemrograman C++ dan menggunakan kembali kodenya. Selain itu, ini adalah fitur C++ yang sangat berguna.