Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2010, 21:16   #1
nastya081108
Новичок
Джуниор
 
Регистрация: 18.05.2010
Сообщений: 1
По умолчанию перегрузка операций

привет! прошу, помогите мне, пожалуйста. заранее спасибо
вот моё задание.
создать собственный класс String для работы со строкамит произвольной длины, размещёнными в памяти. для экземпляров класса String должны быть переоперделены операции присваивания, индексирования, помещения в поток и извлечения из потока, сравнения и определена операция конкатенации. конкатенация должна быть реализована для различных типов операндов: двух объектов String, объекта String и строки (и наоборот), объекта String и символа (и наоборот).

вот то, что у меня есть. помогите исправить
# include <stdafx.h>
# include <iostream>
# include <string>
using namespace std;
class String
{
string s1;
string s2;
string d[50];
string s3;
public:
String(){s1="";s2="";}
String (string s3,string s4){s1=s3;s2=s4;}
String operator=(String Obj);
String& operator[](int Obj);
String& operator==(String Obj);
friend ostream& operator<<(ostream&,String&);
friend istream& operator>>(istream&,String&);
friend String& operator+(String s5,String s6);
String& operator+(char *s);
String& operator+(char s);
};
String String:perator =(String Obj)
{ String strok;
strok.s1=strok.s2;
return strok;
}
String& String:perator [](int Obj)
{String s;
return (String&)s.d[Obj];
}
String& String:perator ==(String Obj)
{String s;
return (String&)s.s1==(String&)Obj.s1;
}
ostream& operator<<(ostream & o, String &s1)
{return o<<s1.s1;
}
istream& operator>>(istream & i,String&s1)
{return i>>s1.s1;
}
String& operator +(String s5,String s6)
{return (String&)(s5+s6);
}
String& String:perator+(char *s)
{char *S=new char[strlen(s1)+strlen(s)+1];
strcat(S,s1);
strcat(S,s);
return (String&)S;
}
String& String:perator +(char s)
{ char *S = new char[strlen(s1) + 2];
strcat(S, s1);
s=*(S + strlen(s1));
return (String&)S;
}
int main()
{
return 1;}
nastya081108 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка стандартных операций Новичек_Rudik Помощь студентам 1 19.04.2010 23:32
перегрузка операций в си++ Serjuk Общие вопросы C/C++ 9 20.03.2010 21:30
С++ перегрузка операций для шаблонного класса TIN Помощь студентам 7 29.03.2009 15:24
Конструктор, наследование, перегрузка операций Lioness Помощь студентам 18 02.06.2008 20:44