Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- class String
- {
- private:
- char *s; // char * để lưu chuỗi nhé
- int size;
- public:
- String(const char *str = NULL); // constructor với tham số
- ~String() { delete [] s; }// destructor lát nói sau !
- String(const String&); // copy constructor
- void print() { cout << s << endl; }
- void change(const char *);
- };
- String::String(const char *str)
- {
- size = strlen(str);
- s = new char[size+1]; //lưu ý là còn có kí tự "\0" nữa nha
- strcpy(s, str); // copy chuỗi phải như thế này, không được s = str đâu
- }
- void String::change(const char *str) // hàm thay đổi chuỗi
- {
- delete [] s; //xóa luôn, build lại từ đầu
- size = strlen(str);
- s = new char[size+1];
- strcpy(s, str); //hmmmmmm
- }
- String::String(const String& old_str) //định nghĩa copy constructor
- {
- // hiểu nôm na là gán các nhóm thông tin qua một đối tượng đích
- size = old_str.size; //this->size = old_str.size để tường minh hơn
- s = new char[size+1];
- strcpy(s, old_str.s); //strcpy(this->s, old_str.s)
- }
- int main()
- {
- String *str1 = new String("Hello Decoding"); // khởi tạo str1
- String *str2 = new String(*str1); // khởi tạo str2 thông qua (*str1)
- str1->print(); // what is printed ?
- str2->print();
- str2->change("Changed"); //thay đổi str2
- str1->print(); // what is printed now ?
- str2->print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement