Breaking News
recent

Program Operator Overloading Bahasa C++ : + , - , * , / , % , ++ , --


Berikut source code untuk operator overloading Bahasa C++ :

#include <iostream>
#include <conio.h>

using namespace std;

class Kelereng
{
private:
    int merah;
    int kuning;
public:
    Kelereng(int jum_merah, int jum_kuning);
    void tampil();
    //overloading terhadap operator
    Kelereng operator + (Kelereng b);
    Kelereng operator - (Kelereng b);
    Kelereng operator * (Kelereng b);
    Kelereng operator / (Kelereng b);
    Kelereng operator % (Kelereng b);
    void operator ++ ();
    void operator -- ();
};
/******Mendeklarasikan Methods dari Kelas ***********/
Kelereng::Kelereng(int jum_merah, int jum_kuning)
{
    merah=jum_merah;
    kuning=jum_kuning;
}
void Kelereng::tampil()
{
    cout<<"Jumlah merah = "<<merah<<", kuning = "<<kuning<<endl;
    }
    Kelereng Kelereng::operator + (Kelereng b)
    {

        Kelereng temp(0,0);
        temp.merah=merah + b.merah;
        temp.kuning=kuning + b.kuning;
        return(temp);
    }

    Kelereng Kelereng::operator - (Kelereng b)
    {
        Kelereng temp(0,0);
        temp.merah=merah - b.merah;
        temp.kuning=kuning - b.kuning;
        return(temp);
    }
    Kelereng Kelereng::operator * (Kelereng b)
    {
        Kelereng temp(0,0);
        temp.merah=merah * b.merah;
        temp.kuning=kuning * b.kuning;
        return(temp);

    }

    Kelereng Kelereng::operator / (Kelereng b)
    {
        Kelereng temp(0,0);
        temp.merah=merah / b.merah;
        temp.kuning=kuning / b.kuning;
        return(temp);
    }

    Kelereng Kelereng::operator % (Kelereng b)
    {
        Kelereng temp(0,0);
        temp.merah=merah % b.merah;
        temp.kuning=kuning % b.kuning;
        return(temp);
    }

    void Kelereng::operator ++ ()
    {
        ++merah;
        ++kuning;
    }
    void Kelereng::operator -- ()
    {
        --merah;
        --kuning;
    }

    /************** Main Program *************/

    int main()
    {

        Kelereng Kelereng1(20,8);
        Kelereng Kelereng2(7,3);
        Kelereng Kelereng3(0,0);
        cout<<"Objek Kelereng 1"<<endl;
        Kelereng1.tampil();
        cout<<"Objek Kelereng 2"<<endl;
        Kelereng2.tampil();

        //contoh operator overloading terhadap +
        Kelereng3=Kelereng1+Kelereng2;
        cout<<"Hasil Penjumlahan Kelereng 1 dan Kelereng 2"<<endl;
        Kelereng3.tampil();

        //contoh operator overloading terhadap -
        Kelereng3=Kelereng1-Kelereng2;
        cout<<"Hasil Pengurangan Kelereng 1 dan Kelereng 2"<<endl;
        Kelereng3.tampil();

        //Contoh operator overloading terhadap *
        Kelereng3=Kelereng1*Kelereng2;
        cout<<"Hasil Perkalian Kelereng 1 dan Kelereng 2"<<endl;
        Kelereng3.tampil();

        //Contoh operator overloading terhadap /
        Kelereng3=Kelereng1/Kelereng2;
        cout<<"Hasil Pembagian Kelereng 1 dan Kelereng 2"<<endl;
        Kelereng3.tampil();

        //Contoh operator overloading terhadap %
        Kelereng3=Kelereng1%Kelereng2;
        cout<<"Hasil Sisa Pembagian Kelereng 1 dan Kelereng 2"<<endl;
        Kelereng3.tampil();

        //Contoh operator overloading terhadap ++
        ++Kelereng1;
        cout<<endl<<"Hasil ++Kelereng1"<<endl;
        Kelereng1.tampil();

        //Contoh operator overloading terhadap --
        --Kelereng2;
        cout<<endl<<"Hasil --Kelereng2"<<endl;
        Kelereng2.tampil();
        getch();
    }

Ahmad

Ahmad

No comments:

Post a Comment

Powered by Blogger.