Pretest
1. Buatlah kelas turunan Bil_float yang hanya mempunyai satu data member bertipe float. kelas bil_float diturunkan dari kelas bilangan
class bil_float:public bilangan{
friend ostream& operator<<(ostream&, const bil_float&);
friend istream& operator>>(istream&, bilangan&);
public:
bil_float(int a0=0, int b0=0, float ch=’x’):bilangan(a0,b0),c(ch){}
private:
float c;
};
2. Buatlah konstruktor dari kelas bil_float
bil_float(int a0=0, int b0=0, float ch=’x’):bilangan(a0,b0),c(ch){}
3. Buatlah operator overloading input dan output
ini implementasi untuk operator overloading output
ostream& operator<<(ostream& out,const bil_float& x){
out<<”Bagian integer: “<<x.a<<endl;
out<<”Bagian float: “<<x.b<<endl;
out<<”Bagian char: “<<x.c<<endl;
return out;
}
implementasi operator overloading input
istream& operator>>(istream& in,bil_float& x){
cout<<”\nMasukkan bagian integer: “;
in>>x.a;
cout<<”Masukkan bagian float: “;
in>>x.b;
return in;
}
4. Modifikasi method banding_int untuk membuat method banding_float pada kelas bil_float
void bilangan::banding_float(const bilangan& x, const bilangan& y){
if(x.c>y.c) cout<<x.c<<”x lebih besar dari “<<y.c<<”y”;
else cout<<x.c<<”x lebih kecil dari”<<y.c<<”y”;
}
Post Test
#include <iostream>
using namespace std;
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&);
friend istream& operator>>(istream&, const 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<<“\nMasukkan bagian Integer : “;
in>>x.a;
cout<<“\nMasukkan 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;
}
#include <iostream>
#include “Bilangan.h”
using namespace std;
class Bil_Float:public Bilangan
{
friend ostream& operator<<(ostream&, const Bil_Float&);
friend istream& operator>>(istream&,Bil_Float&);
public:
Bil_Float(int a0=0, int b0=0, char ch=’x’):Bilangan(a0,b0),c(ch){}
void banding_Float(const Bil_Float&, const Bil_Float&);
private:
float c;
};
ostream& operator<<(ostream& out, const Bil_Float& x)
{
out<<“Bagian integer : “<<x.a<<endl;
out<<“Bagian float : “<<x.b<<endl;
out<<“Bagian char : “<<x.c<<endl;
return out;
}
istream& operator>>(istream& in,Bil_Float& x)
{
cout<<“\nMasukkan bagian Integer : “;
in>>x.a;
cout<<“\nMasukkan bagian float : “;
in>>x.b;
return in;
}
void Bil_Float::banding_Float(const Bil_Float& x,const Bil_Float& 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”;
}
#include <iostream>
#include “bilfloat.h”
using namespace std;
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 di-assign t\n”;
cout<<“Nilai s\n”<<s;
cout<<“Masukkan nilai-nalai objek d”;
cin>>d;
cout<<“setelah d + t => \n”<<d+t;
cout<<“Nalai d dinegatifkan\n”<<-d;
Bil_Float ss;
cout<<“Nilai awal ss\n”<<ss;
system(“PAUSE”);
}