Membuat Class String Sendiri
8.14. Membuat Class String Sendiri
Class string pada bahasa C++ dengan seberapa besar untuk secara otomatis menangani banyak
membuat array.
tugas-tugas yang terlibat dalam Strings mungkin akan ditugaskan penggunaan string, seperti alokasi
ke objek dengan MyString = memori dinamis dan memeriksa
operator. Programmer yang margin dan lain sebagainya. Ia juga
menggunakan kelas ini tidak perlu merupakann operator overload
memanggil fungsi strcpy. seperti + dan =, dan juga memiliki Satu string mungkin concatenated banyak anggota fungsi yang
lain dengan + = operator. Ini memudahkan dalam bekerja dengan
menghilangkan kebutuhan untuk string. Dalam beberapa bagian, kita
fungsi strcat.
harus membuat sebuah data tipe Strings mungkin akan diuji untuk string dengan banyak kelas fungsi
kesetaraan dengan == operator. C++.
Programmer yang menggunakan Dalam proses, kita lihat misalnya
kelas ini tidak perlu memanggil pada contoh copy constructor
fungsi strcmp.
keberatan dan operator penuh aksi, Pada sebuah Kelas MyString serta contoh-contoh teknik memiliki pointer sebagai anggota dan
pemrograman yang berguna sebagai secara dinamis mengalokasikan solusi dari berbaai masalah. Kelas memori untuk menyimpan nilai string, MyString yang ditetapkan dalam konstruksi salinan disediakan. Fungsi
bagian ini adalah jenis data abstrak ini akan menyebabkan objek diatur untuk menangani string. Memiliki dengan benar datanya ketika banyak keunggulan yang dimiliki oleh
diinisialisasi dengan obyek MyString kelas C++ string yang diberikan oleh
lain.
Standard Template Library: Kelas MyString memiliki 2 Memori yang dteralokasi secara overloaded = operator. Yang pertama
dinamis untuk setiap string yang adalah untuk menempatkan satu tersimpan dalam MyString objek. MyString ke objek lain. fungsi Programmer yang menggunakan Operator ini dipanggil ketika operand kelas ini tidak perlu khawatir di sebelah kanan dari tanda = adalah
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Operasi String
MyString objek, seperti yang terlihat versi yang pertama dirancang untuk pada segmen kode berikut:
bekerja dengan objek MyString lainnya dan yang kedua dirancang
MyString first( "Hello" ), second; untuk bekerja dengan string C++ second = first;
konvensional. == Fungsi akan kembali jika string berada di sebelah
Kedua versi MyString = dari operator kanan operand sesuai dengan untuk menempatkan tradisional string
anggota str panggilan objek. Jika ke MyString objek. Operator fungsi ini
kedua operands string tidak cocok, dipanggil ketika operand di kanan =
fungsi return false. fungsi Operator ini adalah sebuah string konstan atau memungkinkan programmer pointer ke sebuah string (seperti menggunakan kelas ini untuk nama sebuah char array). Hal ini membangun penghubung ekspresi ditunjukkan pada segmen program seperti ini: berikut:
MyString name1( "Supra" ),
MyString name;
name2( "Supra" ); char who[] = "Jimmy" ; if (name1 == name2)
name = who; cout << "nama adalah sama.\n" ; else
Operator + = dirancang untuk cout << "nama adalah berbeda\n" ; menggabungkan string pada MyString kanan ke kiri pada objek. MyString name1( "Suprapto" ); Seperti operator =, MyString memiliki
if (name1 == "Supra" )
dua versi =. + Versi pertama ini cout << "nama adalah sama.\n" ; dirancang untuk bekerja pada saat else yang tepat operand adalah MyString
cout << "nama adalah berbeda.\n" ; obyek lain, seperti yang ditunjukkan
dalam program ini segmen: Objek MyString memiliki dua
versi yan berkelebihan beban > lebih MyString first( "Hello " ), second( "world" ); besar daripada operator untuk first += second; melakukan tes, dan < operator untuk
melakukan kurang dari tes. Versi Kedua versi dari operator + = akan pertama dari masing-masing dipanggil ketika operand sebelah dirancang untuk bekerja dengan kanan adalah string literal atau objek lain MyString dan yang kedua pointer ke karakter :
ini dirancang untuk bekerja dengan C + + tradisional string. (fungsi
MyString first( "Hello " ); perpustakaan menggunakan fungsi first += "World" ; strcmp untuk menentukan apakah sebuah lebih daripada atau kurang
Objek MyString yang memiliki daripada hubungan yang ada.) kelebihan beban versi dari operator
Sebuah fungsi > return benar jika == untuk melakukan ujian str anggota panggilan objek lebih
kesetaraan. Seperti operator lainnya, besar daripada string dalam operand 328
Direktorat Pembinaan SMK| 2008
Operasi String Bahasa Pemrorgraman
kanan. Jika tidak, fungsi return false. Pada fungsi > = kembali benar, Yang <fungsi return true jika str jika str anggota panggilan objek yang anggota panggilan objek kurang dari
lebih besar dari atau sama dengan string dalam operand kanan. Jika string yang ada di sebelah kanan tidak, mereka kembali palsu. operand. Jika tidak, fungsi return Operator fungsi ini memungkinkan salah. Fungsi <= return benar jika str programmer menggunakan kelas ini anggota panggilan objek kurang dari untuk membangun penghubung atau sama dengan string yang ada di ekspresi seperti yang ditampilkan sebelah kanan operand. Jika tidak, dalam program ini segmen:
mereka kembali palsu. Operator fungsi ini memungkinkan programmer MyString name1( "Suprapto" ), menggunakan kelas ini untuk name2( "Supra" ); membangun penghubung ekspresi
if (name1 > name2) seperti yang ditampilkan dalam cout << "Suprapto lebih besar
segmen program ini:
daripada Supra\n" ;
else
MyString name1( "Suprapto" ), cout << "Suprapto tidal lebih besar
name2( "Supra" ); daripada Supra.\n" ; if (name1 >= name2)
cout << "Suprapto adalah lebih besar MyString name3( "Suprapto" ); atau sama dengan Supra.\n" ;
else
if (name3 < "Supra" ) cout << "Suprapto lebih kecil cout << "Suprapto lebih kecil
daripada Supra.\n" ;
daripada Supra.\n" ;
else
MyString name3( "Suprapto" ); cout << "Suprapto tidak lebih kecil
if (name3 <= "Supra" ) daripada\n" ; cout << "Suprapto lebih kecil atau
sama dengan Supra.\n" ;
Objek MyString memiliki dua else
versi > = operator untuk melakukan cout << "Suprapto lebih besar sama operasi lebih besar daripada atau tes
dengan Supra.\n" ; sama dengan, dan <= operator untuk melakukan kurang dari atau tes
Program dibawah menunjukkan kesamaan. Versi pertama dari bagaimana program MyString masing-masing dirancang untuk memperlihatkan rangkaian stringnya. bekerja dengan objek lain MyString Selain itu, kode utama program dan yang kedua ini dirancang untuk
mendemonstrasikan bagaimana bekerja dengan C++ tradisional MyString memungkinkan programmer string.
untuk memperlakukan string lebih banyak yang lain seperti mengikutkan tipa data didalamnya.
Program 8.20
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Operasi String
#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 0 ; }
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.