{{{~cpp #include #include #include using namespace std; class myString{ private: //char* ch; public: char* ch; myString() { ch = NULL; }; myString(const char* ch) { this->ch = new char[strlen(ch)+1]; strcpy(this->ch, ch); //this->ch = ch; }; myString(const myString& s) { this->ch = new char[strlen(s.ch)+1]; strcpy(this->ch, s.ch); }; ~myString() { delete [] ch; }; int length() const { int temp = strlen(ch); return temp; }; void operator = (const myString& s) { this->ch = new char[strlen(s.ch)+1]; strcpy(this->ch, s.ch); }; char& operator[] (int n) { return *(ch+n); }; //friend ostream& operator << (ostream& o, myString &s); }; ostream& operator << (ostream& o, const myString& s) { o << s.ch; return o; } istream& operator >> (istream& i, myString& s) { if(s.ch==NULL) delete[] s.ch; s.ch = new char[255]; i >> s.ch; return i; } int main() { myString s = "12345"; cout << s[2] << endl; s[2] = 'x'; cout << s<> s; cout << "input string : " << s <