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.