Constructor
Dasar Teori
Pada modul sebelumnya jika area() dipanggil sebelum set_values() hasil indeterminate constructor utk menggantikan set_values()
Fungsi & sifat constructor
Fungsi : Untuk memberi nilai awal atribut suatu class.
Sifat :
otomatis dijlnkan pada saat objek class diciptakan.
tidak bertipe walaupun void sekalipun , dan tdk punya return value.
nama constructor = nama class
Macam-macam constructor:
Default constructor
nilai awal dg konstanta, tanpa parameter
Empty Constructor.
Copy constructor
nilai awal dg parameter, terdapat parameter
Object copy constructor
nilai awal berdsr nilai angg. objek lain, parameter berupa objek dari class yang sama
Source Code
// classes example
#include
class CRectangle {
int width, height;
public:
CRectangle (int,int);
int area (void) {return (width*height);}
};
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle rect (3,4);
CRectangle rectb (5,6);
cout << "rect area: " <<>
cout << "rectb area: " <<>
}
Print screen
OVERRIDING
Overriding menyatakan suatu keadaan dimana methodpada subclass melolak method pada parent classnya
Ciri-ciri overriding :
Nama method harus sama
Daftar parameter harus sama
Return type harus sama
Contoh :
Class parent {
System out.print|n(“ini class parent”);
}
class child extends parent {
public void info(){
system out.print|n(“ini class child”)
}
Peraturan pada Overriding :
Method yang terkena Override tidak boleh mempunyai modifer yang lebih luas aksesnya daripada method yang meng override.
Source Code
#include
#include
class a
{
int x,y;
public:
a()
{
x=y=0;
}
a operator++()
{
++x;
++y;
return *this;
}
a operator+(a ob)
{
a temp;
temp.x = x + ob.x;
temp.y = y + ob.y;
return temp;
}
a operator+=(a obj)
{
x +=obj.x;
y +=obj.y;
return * this;
}
void show()
{
cout<<"\nx= "<
}
friend a operator-( a , a);
friend a operator--( a & );
};
a operator-(a a1,a a2)
{
a temp;
temp.x=a1.x-a2.x;
temp.y=a1.y-a2.y;
return temp;
}
a operator--(a &a1)
{
--a1.x;
--a1.y;
return a1;
}
void main()
{
a a1,a2,a3;
a3.show();
++a1;
++a2;
a3=a2+a1;
a3.show();
--a1;
a3+=a1+a2;
a3.show();
getch();
}
printscreen
Tidak ada komentar:
Posting Komentar