//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 <string.h>
#include <stdio.h>
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()");
}