Tuesday, 1 March 2016

Inheritance C++

Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP, Inheritance merupakan penurunan sifat super class(induk) kepada subclass(anak). Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.
Berikut saya berikan contoh programnya:
#include <cstdlib>
#include <iostream>
using namespace std;
class Bilangan{
friend ostream& operator<<(ostream&, const Bilangan&);
friend istream& operator>>(istream&, Bilangan&);
public:
Bilangan(int a0=0,float b0=0.0):a(a0),b(b0){}
void banding_int(const Bilangan&, const Bilangan&);
Bilangan& operator=(const Bilangan&);
Bilangan operator+(const Bilangan&)const;
Bilangan operator-()const;
protected:
int a;
float b;
};

ostream& operator<<(ostream& out, const Bilangan& x)
{
out<<“Bagian integer: “<<x.a<<endl;
out<<“Bagian float : “<<x.b<<endl;
return out;
}
void Bilangan::banding_int(const Bilangan&x, const Bilangan& y)
{
if(x.a>y.a)cout<<x.a<<“::x lebih besar dari”<<y.a<<“::y”;
else cout<<x.a<<“::x lebih kecil dari”<<y.a<<“::y”;
}
Bilangan& Bilangan::operator=(const Bilangan& x)
{
a=x.a;
b=x.b;
return *this;
}
istream& operator>>(istream& in, Bilangan& x)
{
cout<<“\nMasuk bagian integer:”;
in>>x.a;
cout<<“Masuk bagian float :”;
in>>x.b;
return in;
}
Bilangan Bilangan::operator+(const Bilangan& x)const
{Bilangan cc;
cc.a=a+x.a;
cc.b=b+x.b;
return cc;
}
Bilangan Bilangan::operator-()const
{Bilangan x;
x.a=-a;
x.b=-b;
return x;
}
//
class Bil_char:public Bilangan {
friend ostream& operator << (ostream&, const Bil_char&);
public:
Bil_char(int a0=0, int b0=0, char ch=’x’):Bilangan(a0,b0),c(ch){}
private:
char c;
};
ostream& operator <<(ostream& out, const Bil_char& x){
out<<“bagian INteger : “<<x.a<<endl;
out<<“bagian float : “<<x.b<<endl;
out<<“bagian Char : “<<x.c<<endl;
return out;
}
int main(){
Bilangan s,t(-2,3.14),d;
cout<<“Nilai awal s\n”<<s;
cout<<“Nilai awal t dari deklarasi\n”<<t;
s=t;
cout<<“Setelah s di-assign t\n”;
cout<<“Nilai s\n”<<s;
cout<<“masukan nilai-nilai object d”;
cin>>d;
cout<<“setelah d+t=> \n”<<d+t;
cout<<“Nilai d dinegatifkan\n”<<-d;
system(“PAUSE”);
return EXIT_SUCCESS;
}


Semoga Bermanfaat

0 komentar:

Post a Comment