Fransisca's Blog

blog buat tugas PBO..^^

ringkasan pertemuan 6

Diposting oleh sisqa

Object constant

Object constant adalah object yang tidak dapat dii modify, kalau kita ubah suatu object constant, maka akan menyebabkan error pada saat program di compile

Contoh : const time noon(12,0,0);

Member function yang konstan adalah object yang harus dibuat constant supaya objectnya tidak dapat diubah.

Contoh constant pada prototype:

int get hour()const; // prototype

int time :: get hour()const // definisi

{return hour ;}

Tapi ada juga yang tidak boleh di buat const, yaitu construktor dan destruktor karena keduanya harus bisa memodify object.

Masih ingat kan apa guna construktor dan destruktor?

Construktor untuk menginisialisasi object(bagian partama yang akan dijalankan sebuah object)

Destruktor akan dijalankan ketika object akan dihancurkan.

Nested object

Sebuah Class dapat berisi object dari class lain à Composite / Nested Object

Member object disusun berurutan

class dg member objects (host objects) berada setelah deklarasi class host object tsb à perlu class prototype

Contoh:

class B; // class prototype

class A

{ public: int i;

}

class B

{ public: int j;

A obj_A; //host object

}

B obj_B; // create object class B

Obj_B.Obj_A.i = 0; // inisialisasi member class A via object B

Tiap class member function memiliki hidden parameter -> pointer "this“

"this" menunjuk ke individual object.

pointer "this" dpt digunakan secara explicit

contoh:

void setA(int angka)

{

a = angka;

// cara akses dirinya sendiri :

this->a = a;

}

static Data Member

“Class-wide” data

property class tdk specific pada object tertentu

Seperti global variables, tapi punya class scope

Hanya accessible ke object dgn class yg sama

Efisien untuk single copy data

Dimana hanya static variable yg akan di-update

Initialized hanya 1 kali pada file scope

Berlaku walaupun suatu class tidak punya object

Berlaku independent terhadap objects

Berlaku utk public, private & protected

Dpt di akses lewat object apapun dari sebuah class

Utk public static variables

Dapat diakses dgn operator binary scope resolution (::)

Employee::count

Utk private static variables

Jika suatu class tdk ada object à Hanya dapat diakses via public static member function dgn operator binary scope resolution (::)

Employee::getCount()

static member functions Tdk dpt mengakses non-static data / function

friend function

setiap data yang di deklarasikan dalam class bersifat private, dan tidak dapat diakses diluar class. Suatu fungsi yang bukan dalam class tidak akan pernah bisa mengakses data dalam class yang bersifat private. Tapi ada beberapa kasus tertentu dimana kita perlu untuk mengakses data private itu.

Class akan memberi ijin fungsi lain diluar class untuk membaca datanya, yaitu dengan membuat fungsi itu menjadi friend dari class tersebut.

friend function di definisikan di luar dari class’s scope namum memiliki hak akses ke semua members dari class tersebut

sekali suatu fungsi di deklarasikan sebagai friend, fungsi itu dapat mengakses private data dari class tersebut.

Deklarasi friend funcion dg keyword ‘friend’

Contoh:

C++ Tutorial - Friend function sample:

#include
//Declaration of the function to be made as friend for the C++ Tutorial sample
int AddToFriend(int x);
class CPP_Tutorial
{
int private_data;
friend int AddToFriend(int x);
public:
CPP_Tutorial()
{
private_data = 5;
}
};
int AddToFriend(int x)
{
CPP_Tutorial var1;
return var1.private_data + x;
}
int main()
{
cout << "Added Result for this C++ tutorial: "<< AddToFriend(4)< }

The output of the above C++ Tutorial sample will be
Added Result for this C++ tutorial: 9

C++ Tutorial - Friend function:

#include < iostream.h >
class CPP_Tutorial
{
int private_data;
friend class friendclass;
public:
CPP_Tutorial()
{
private_data = 5;
}

};
class friendclass
{
public:
int subtractfrom(int x)
{
CPP_Tutorial var2;
return var2.private_data - x;
}
};
int main()
{
friendclass var3;
cout << "Added Result for this C++ tutorial: "<< var3.subtractfrom(2)<
}

The output of the above C++ Tutorial sample will be
Subtracted Result for this C++ tutorial: 3

Cara ini adalah cara yang baik yang diberikan olah c++ untuk membaca private variable dari suatu class. Tapi kiranya hal ini dilakukan dengan hati hati, karena jika semua fungsi dan class kita deklarasikan sebagai friends, maka konsep encapsulation dan information hiding akan hilang.

Operator Overloading

Pemakaian Overloading operator ditujukan untuk mengoperasikan data pada object menjadi mudah

Menggunakan keyword operator

Operator yang tidak dapat dioverloading:

Operator

Kegunaan

Contoh

. (dot)

Access ke member class

cin.getline

.* (dot asterix)

Pointer ke member class

Object.*member

:: (scope)

Akses ke data / member function

Class::member

?: (ternary)

seleksi kondisi

C=(a>b)?a:b

sizeof

Memperoleh ukuran tipe data

Sizeof (int)

Sumber:

http://www.codersource.net/cpp_tutorial_friend.html

2 komentar:

Nanda Nurhadyan mengatakan...

nice post ..hehe
ini keluar di soal dari dosen ku nih,, :D

sisqa mengatakan...

oh y?
thanks^^

Posting Komentar