TM 08 : Class Strings
Albert Hendry Harsono/1701296914/02PPT
a. Desain class String. Klas ini mempunyai dua data anggota dengan level akses private, yaitu string aktual s yang disajikan dalam bentuk pointer char * s dan len untuk menyajikan panjang string s. Fungsi anggotanya, level akses public, adalah default constructor String(), constructor String (char*, unsigned), constructor String (const char*), copy constructor String (const String &) dan destructor ~String(). Dalam desain ini semua fungsi anggota harus berbentuk prototipe.
class String { private: string ss; char *s; int len; public: String(); String(char* s); String(const String &r); ~String(); int length(); void setSs(string ss); string getSs(); };
b. Selanjutnya implementasikan definisi semua fungsi anggota di luar class String. Ingat jangan lupa gunakan scope resolution operator :: .
void String::setS(string ss) { this->ss=ss; } string String::getS() { return ss; } String::String() { cout<<"object constructed"<<endl; } String::String(char*s) { strcpy(this->s,s); } String::String(const String &r) { cout<<"copy constructor called"<<endl; } String::~String() { cout<<"object destructed"<<endl; } int String::length() { len=strlen(s); }
c. Terakhir, tulislah fungsi main() sebagai driver untuk menguji desain kamu.
int main() { String kata; kata.setSs("Test"); kata.length(); String kata2(kata); cin.get(); return 0; }
I AM PROUD AS BINUSIAN