Warisan C++

Warisan adalah fitur yang sangat penting dari pemrograman berorientasi objek. Hal ini memungkinkan programmer untuk mendapatkan 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.

#include <iostream>

using namespace std;

class Base_Class
{
public:
    int i;
    void display()
    {
        cout << "Display of Base Class " << i << endl;
    }
   
};

class Derived_Class:public Base_Class
{
public:
    void show()
    {
        cout << "Show of Derived Class" << endl;
    }
};

int main()
{
    Derived_Class dc;
    dc.i = 100;
    dc.display();
    dc.show();

    return 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.

#include <iostream>
using namespace std;

class Base_Class
{
public:
    Base_Class()
    {
        cout << "Base_Class - No Parameters" << endl;
    }
    Base_Class(int x)
    {
        cout << "Base_Class - Parameters : " << x << endl;
    }
};

class Derived_Class:public Base_Class
{
public:
    Derived_Class()
    {
        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 main()
{
    Derived_Class 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 ditentukan: Rectangle_Class dan Cube_Class. Rectangle_Class adalah kelas dasar dari mana kelas turunan, yaitu, Cube_Class diturunkan. 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().

#include <iostream>

using namespace std;

class Rectangle_Class
{
private:
    int length;
    int breadth;
public:
    Rectangle_Class();
    Rectangle_Class(int l,int b);
    Rectangle_Class(Rectangle_Class &r);
    int getLength()
    {
        return length;
    }
    int getBreadth()
    {
        return breadth;
    }
    void setLength(int l);
    void setBreadth(int b);
    int area();
};

class Cube_Class:public Rectangle_Class
{
private:
    int height;
public:
    Cube_Class(int h)
    {
        height=h;
    }
    int getHeight()
    {
        return height;
    }
    void setHeight(int h)
    {
        height=h;
    }
    int volume()
    {
        return getLength()*getBreadth()*height;
    }
};


Rectangle_Class::Rectangle_Class()
{
    length=1;
    breadth=1;
}
Rectangle_Class::Rectangle_Class(int l,int b)
{
    length=l;
    breadth=b;
}
Rectangle_Class::Rectangle_Class(Rectangle_Class &r)
{
    length=r.length;
    breadth=r.breadth;
}
void Rectangle_Class::setLength(int l)
{
    length=l;
}
void Rectangle_Class::setBreadth(int b)
{
    breadth=b;
}
int Rectangle_Class::area()
{
    return length*breadth;
}

int main()
{
    Cube_Class c(8);
    c.setLength(12);
    c.setBreadth(9);
    cout<<"Volume is "<<c.volume()<<endl;
}

Kesimpulan:

Pada artikel ini, saya telah menjelaskan konsep Inheritance 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.

Related Posts