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>
#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;
};
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;
}
{
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;
}
{
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 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;
}
{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;
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;
}
return EXIT_SUCCESS;
}
Semoga Bermanfaat
0 komentar:
Post a Comment