Класс для работы со строчками
Всем привет.Есть у меня задание *Создать класс для работы со строчками. Максимальная длина последовательности – 254. Первый байт должен содержать информацию о фактическом количестве элементов массива. Совершить перегрузку операций:
"=" – присвоение,
"+" – конкатенация (соединение) строк,
"<=" – отношение "меньше или равно",
" >= " – отношение "больше или равно",
"==" – отношение "равно",
"!=" – отношение "не равно".
В классе предусмотреть конструктор инициализации, конструктор копирования, деструктор.*
Вот мой код,там не все перегрузки. Файл main.cpp
#include <iostream>
#include <string.h>
#include "line.h"
using namespace std;
int main(){
setlocale(LC_ALL , "Ukrainian");
String input1,input2;
int change;
cout << "Введiть перший рядок: ";
cin >> input1;
cout << "Введiть другий рядок: ";
cin >> input2;
cout << "\t\tДiї" << endl;
cout << "1.Присвоєння рядкiв;" << endl;
cout << "2.Конкатенацiя(з'єднання) рядкiв;" << endl;
cout << "3.Вiдношення(бiльше чи дорiвнює);" << endl;
cout << "4.Вiдношення(бiльше чи дорiвнює);" << endl;
cout << "5.Вiдношення(дорiвнює);" << endl;
cout << "6.Вiдношення(не дорiвнює)." << endl;
cout << "Ваш вибiр: ";
cin >> change;
switch(change){
case 1:{
input2 = input1;
cout << input2;
break;
}
case 2:{
input2 == input1;
break;
}
case 3:{
break;
}
case 4:{
break;
}
case 5:{
break;
}
case 6:{
break;
}
default:{
cout << "Неправильно введене значення..." << endl;
return 1;
break;
}
}
return 0;
}
И второй файл с самим классом
#include <iostream>
#include <string.h>
using namespace std;
class String{
public:
char *str;
String();
~String();
String operator = (String &line);
void operator + (String &line);
void operator <= (String &line);
void operator >= (String &line);
bool operator == (String &line);
void operator != (String &line);
friend ostream &operator<<(ostream &stream, String obj);
friend istream &operator>>(istream &stream, String obj);
};
String::String(){
str = new char[256];
}
String::~String(){
delete[] str;
}
String String::operator = (String &line){
strcpy(str,line.str);
return *this;
}
bool String::operator == (String &line){
return strcmp(str,line.str);
}
ostream &operator<<(ostream &stream, String obj){
stream<<obj.str;
return stream;
}
istream &operator>>(istream &stream, String obj){
stream>>obj.str;
return stream;
}
Реализовал пока что только оператор присваивания и сравнения но они крашатся почему-то. Понимаю что мог сделать где-то глупую ошибку,потому что нам можно сказать толком ничего и не обьяснили.