Senin, 26 Oktober 2009

Contructor... next

Ternyata tidak hanya operator saja yang bisa overloading.
Constructor (untuk membangun objek) pun juga dapat overloading.


class Mobil{
private :
char merk[20];
int kec;

public :
// overloading constructor
Mobil(){
setKec(0);
setMerk("");
}

//constructor awal
Mobil(int a, char *b){
setKec(a);
setMerk(b);
}
};

Meskipun memiliki nama yang sama, namun saat pemanggilan dapat diatur sesuai yang diinginkan.

Dan ada pula, copy constructor yang menggunakan alamat dari variabel.

// copy constructor
Mobil(Mobil &obj){
kec = obj.getKec(); // kec = obj.kec;
strcpy(merk,obj.merk);
}

Maka dari itu constructor pun memiliki banyak kegunaan. Dan dibutuhkan pemahaman untuk mengerti seluk beluknya.

Rabu, 21 Oktober 2009

Nested Struct

Kalau saat belajar bahasa C, sudah dikenal tentang struct. Saat belajar bahasa C++ dikenal nested struct, yaitu struct yang berada di dalam struct.

#include

struct course
{
int couno;
int coufees;
};

struct student
{
int studno;
course sc;
course sc1;
};

void main( )
{
student s1;
s1.studno=100;
s1.sc.couno=123;
s1.sc.coufees=5000;
s1.sc1.couno=200;
s1.sc1.coufees=5000;
int x = s1.sc.coufees + s1.sc1.coufees;
cout<< “\n Student Number: ”< cout<<”\n Total Fees: Rs.”<< x;
}

Output :
Student Number: 100
Total Fees: Rs.10000


s1 adalah nama struct variable. sc adalah nama struct student luar. couno adalah anggota struct course. Seperti ituah anggota nested struct diakses.

Minggu, 11 Oktober 2009

Pointer Operator

Kalau dilihat dari banyaknya variabel yang terlihat di memori , pasti tidak pernah terpikirkan mengenai lokasi-lokasi data yang digunakan pula. Karena itu digunakan identifier yang dapat digunakan kapanpun tanpa harus memikirkan berapa banyak memori yang harus terpakai.

Ada beberapa macam, yaitu :

Reference operator (&)

Contoh : ted = &andy;
Tulisan di atas akan menandakan ted alamat dari variabel andy. Yang dimaksud disini bukan isi dari variabelnya tapi alamatnya di memori.


Dereference operator (*)

Contoh :
beth = *ted;
Tulisan di atas menandakan bahwa nilai beth dan ted adalah sama.

Sabtu, 10 Oktober 2009

Stream Manipulasi

Stream manipulator :

  • boolalpha - Nilai alphanumerik (manipulator function)
  • internal – memasukkan karakter pada posisi internal
  • left – membuat output menjadi rata kiri
  • right - membuat output menjadi rata kanan
  • noshowpoint – tidak memunculkan poin desimal
  • noshowpos – tidak memunculkan tanda positif
  • noskipws – tidak melewatkan whitespace (enter,spasi,tab)
  • nounitbuf - tidak memaksa melakukan flush setelah insersi
  • nouppercase - tidak membuat huruf besar
  • resetiosflags - mereset format flags
  • setioflags - format flags
  • showpoint - memunculkan poin desimal
  • showpos - memunculkan tanda positif
  • skipws - melewakan whitespace (enter,spasi,tab)
  • unitbuf - melakukan flush setelah insersi
  • uppercase - membuat huruf besar
  • ws - mengekstrak whitespace (enter,spasi,tab)
Dan masih banyak lagi jenis-jenisnya. Tentu fungsi masing-masingnya akan digunakan sesuai dengan keperluan.

Elemen iostream di C++

Elemen yang dimiliki iostream sebagai standard library untuk menjalankan input output dengan streams, yaitu :

  • Basic class template – dasarnya pasti ada hierarki dari template class. Dan masing-masing kelas pada templatenya memiliki parameter yang dapat dimanipulasi , dapat menunjukkan karakter spesifik tiap elemen. Biasanya, pemberian nama sesuai dengan tipenya.

Contoh : class temlate istream – basic_istream

class template fstream – basic_fstream


  • Class template instantiation

- narrow-oriented (char type) – manipulasi elemen dari tipe satu dengan yang lainnya

(paling sering digunakan)

contoh : class ios, istream, ofstream

- wide-oriented (wchar_t) – sama seperti narrow-oriented tapi nama masig-masing

kelasnya dan objek didahului karakter ‘w’.

contoh : wios, wistream


  • Standard object – mendeklarasikan objek yang digunakan untuk proses input output sebagai standardnya.

Ada 2 macam :

* narrow-oriented objects – cin, cout, cerr, clog

* wide-oriented counterparts – wcin, wcout, wcerr, wclog


  • Type – untuk menjelaskan tipe-tipe data yang bergantung pada sifat sesuai instansiasinya.

Contoh : char dan wchar_t – streampos, streamoff dan streamsize digunakan untuk

menunjukkan posisi, offset dan ukuran.


  • Manipulator – fungsi global untuk digunakan bersama operator insertion (<<) dan extraction (>>) di objek-objeknya. Biasanya memodifikasi properti dan pengaturan streams.

Contoh : endl, hex, oct , scientific