Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#define _CRT_SECURE_NO_WARNINGS
#ifndef _STRING_H_
#define _STRING_H_
#include<iostream>
class String
{
private:
char *mystring; //строка
int length; //длина строки
public:
String(int _length = 100);
String(char str[]);
String(const String & str);
~String();
inline int GetLength() const { return this->length; };
//inline char * GetString() const { return this->mystring; };
inline String GetString() const { return *this; };
friend std::ostream & operator << (std::ostream & os,String & str);
friend std::istream & operator >> (std::istream & is,String & str);
void operator = (const String & tmp);
void operator = (char * str);
void operator = (const char str[]); // для константных строк
bool operator == (const String & tmp) const;
bool operator == (const char * tmp) const;
void operator += (char *str)
{
int len = this->length + strlen(str);
char *tmp_str = new char [this->length + 1];
strcpy(tmp_str,this->mystring);
if(this->length != 0 )
delete this->mystring;
mystring = new char [len + 1];
strcpy(mystring,tmp_str);
strcat(mystring,str);
this->length = len;
}
};
//конструктор по умолчанию протестирован
//конструктор копирования протестирован
//деструктор протестирован
//перегруженный оператор вывода протестирован
//перегруженный оператор ввода протестирован
//перегруженные операторы присваивания протестированы
//перегруженный оператор сравнения на равенство протестирован
#endif
Соседние файлы в папке MyException