//stroka h #ifndef STROKA_H #define STROKA_H class stroka { protected: char *ch; int len; public: stroka(); stroka(char*); stroka(char); stroka(stroka& str); ~stroka(); void Clear(); int GetLen(); char* GetLine(); }; #endif //stroka cpp #include "stroka.h" #include #include stroka::stroka() { len = 0; ch = new char[1]; ch[0] = 0; report("Worked stroka::stroka()"); } stroka::stroka(char *s) { len = strlen(s); ch = new char[len+1]; strcpy(ch,s); ch[len] = 0; report("Worked stroka::stroka(char *s)"); } stroka::stroka(char c) { len = 1; ch = new char[2]; ch[0] = c; ch[1] = 0; report("Worked stroka::stroka(char c)"); } stroka::~stroka() { delete ch; report("Worked stroka::~stroka()"); } stroka::stroka(stroka &cp) { len=cp.GetLen(); ch=new char[len+1]; strcpy(ch,cp.GetLine()); report("Worked stroka::stroka(stroka &from)"); } int stroka::GetLen(void) { return len; } char* stroka::GetLine(void) { return ch; } void stroka::Clear(void) { delete ch; len = 0; ch = new char[1]; ch[0] = 0; report("Worked stroka::clear()"); }