Membuat Class String Sendiri

328 Direktorat Pembinaan SMK| 2008 MyString objek, seperti yang terlihat pada segmen kode berikut: MyString first Hello , second; second = first; Kedua versi MyString = dari operator untuk menempatkan tradisional string ke MyString objek. Operator fungsi ini dipanggil ketika operand di kanan = adalah sebuah string konstan atau pointer ke sebuah string seperti nama sebuah char array. Hal ini ditunjukkan pada segmen program berikut: MyString name; char who[] = Jimmy ; name = who; Operator + = dirancang untuk menggabungkan string pada MyString kanan ke kiri pada objek. Seperti operator =, MyString memiliki dua versi =. + Versi pertama ini dirancang untuk bekerja pada saat yang tepat operand adalah MyString obyek lain, seperti yang ditunjukkan dalam program ini segmen: MyString first Hello , second world ; first += second; Kedua versi dari operator + = akan dipanggil ketika operand sebelah kanan adalah string literal atau pointer ke karakter : MyString first Hello ; first += World ; Objek MyString yang memiliki kelebihan beban versi dari operator == untuk melakukan ujian kesetaraan. Seperti operator lainnya, versi yang pertama dirancang untuk bekerja dengan objek MyString lainnya dan yang kedua dirancang untuk bekerja dengan string C++ konvensional. == Fungsi akan kembali jika string berada di sebelah kanan operand sesuai dengan anggota str panggilan objek. Jika kedua operands string tidak cocok, fungsi return false. fungsi Operator ini memungkinkan programmer menggunakan kelas ini untuk membangun penghubung ekspresi seperti ini: MyString name1 Supra , name2 Supra ; if name1 == name2 cout nama adalah sama.\n ; else cout nama adalah berbeda\n ; MyString name1 Suprapto ; if name1 == Supra cout nama adalah sama.\n ; else cout nama adalah berbeda.\n ; Objek MyString memiliki dua versi yan berkelebihan beban lebih besar daripada operator untuk melakukan tes, dan operator untuk melakukan kurang dari tes. Versi pertama dari masing-masing dirancang untuk bekerja dengan objek lain MyString dan yang kedua ini dirancang untuk bekerja dengan C + + tradisional string. fungsi perpustakaan menggunakan fungsi strcmp untuk menentukan apakah sebuah lebih daripada atau kurang daripada hubungan yang ada. Sebuah fungsi return benar jika str anggota panggilan objek lebih besar daripada string dalam operand 2008 | Direktorat Pembinaan SMK 329 kanan. Jika tidak, fungsi return false. Yang fungsi return true jika str anggota panggilan objek kurang dari string dalam operand kanan. Jika tidak, mereka kembali palsu. Operator fungsi ini memungkinkan programmer menggunakan kelas ini untuk membangun penghubung ekspresi seperti yang ditampilkan dalam program ini segmen: MyString name1 Suprapto , name2 Supra ; if name1 name2 cout Suprapto lebih besar daripada Supra\n ; else cout Suprapto tidal lebih besar daripada Supra.\n ; MyString name3 Suprapto ; if name3 Supra cout Suprapto lebih kecil daripada Supra.\n ; else cout Suprapto tidak lebih kecil daripada\n ; Objek MyString memiliki dua versi = operator untuk melakukan operasi lebih besar daripada atau tes sama dengan, dan = operator untuk melakukan kurang dari atau tes kesamaan. Versi pertama dari masing-masing dirancang untuk bekerja dengan objek lain MyString dan yang kedua ini dirancang untuk bekerja dengan C++ tradisional string. Pada fungsi = kembali benar, jika str anggota panggilan objek yang lebih besar dari atau sama dengan string yang ada di sebelah kanan operand. Jika tidak, fungsi return salah. Fungsi = return benar jika str anggota panggilan objek kurang dari atau sama dengan string yang ada di sebelah kanan operand. Jika tidak, mereka kembali palsu. Operator fungsi ini memungkinkan programmer menggunakan kelas ini untuk membangun penghubung ekspresi seperti yang ditampilkan dalam segmen program ini: MyString name1 Suprapto , name2 Supra ; if name1 = name2 cout Suprapto adalah lebih besar atau sama dengan Supra.\n ; else cout Suprapto lebih kecil daripada Supra.\n ; MyString name3 Suprapto ; if name3 = Supra cout Suprapto lebih kecil atau sama dengan Supra.\n ; else cout Suprapto lebih besar sama dengan Supra.\n ; Program dibawah menunjukkan bagaimana program MyString memperlihatkan rangkaian stringnya. Selain itu, kode utama program mendemonstrasikan bagaimana MyString memungkinkan programmer untuk memperlakukan string lebih banyak yang lain seperti mengikutkan tipa data didalamnya. Program 8.20 330 Direktorat Pembinaan SMK| 2008 include iostream include mystring.h using namespace std; int main { MyString object1 Ini , object2 adalah ; MyString object3 menguji. ; MyString object4 = object1; panggil copy constructor. MyString object5 adalah hanya menguji. ; char string1[] = sebuah pengujian. ; cout Object1: object1 endl; cout Object2: object2 endl; cout Object3: object3 endl; cout Object4: object4 endl; cout Object5: object5 endl; cout String1: string1 endl; object1 += ; object1 += object2; object1 += ; object1 += object3; object1 += ; object1 += object4; object1 += ; object1 += object5; cout object1: object1 endl; return ; } Keluaran Program diatas adalah sebagai berikut Object1: Ini Object2: adalah Object3: menguji. Object4: Ini Object5: adalah hanya menguji. String1: sebuah pengujian. object1: Ini adalah menguji. Ini hanya menguji sebuah pengujian.

8.15. Studi Kasus

2008 | Direktorat Pembinaan SMK 331 Sebagai programmer untuk programmer lanjut pada Software Enterprises, kita biasanya akan diminta untuk mengembangkan satu kelas yang bernama mata penyisipan koma dan tanda dolar di lokasi yang sesuai dalam sebuah string yang berisi jumlah dolar tidak diformat. Kelas konstruktor harus menerima string objek atau pointer ke string bahasa C yang berisi nilai seperti 1084567,89. Kelas harus menyediakan fungsi anggota yang mengembalikan obek string menjadi sejumlah formatted-dollar, seperti 1.084.567,89. Tabel 8.8. Keanggotaan Variabel MEMBER VARIABEL PENJELASAN Original Obyek string menahan string asli yang bersifat unformatted. formatted Obyek string menahan string yang bersifat formatted. Tabel 8.9. Fungsi Keanggotaan FUNGSI KEANGGOTAAN PENJELASAN Constructor Disertakan dalam obyek string sebagai argumen. Obyek disalin ke original member, dan memanggil fungsi keanggotaan dolarrFormat . dollarFormat Menyalin keanggotaan original menjadi format member. Tanda koma dan dolar disertakan dalam memasukkan ke lokasi bentuk keanggotaan. getOriginal Mengambalikan keanggotaan original getFormatted Mengembalikan bentuk keanggotaan Program 8.21. Penggunaan class include iostream include string include currency.h using namespace std; int main { string input; cout Masukan jumlah dollar ke rekening dengan form nnnnn.nn : ; cin input; Currency dollarsinput; cout disini rekening diatur:\n ;