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();
}
No comments:
Post a Comment