|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.10.2010, 13:52 | #1 |
Пользователь
Регистрация: 28.04.2010
Сообщений: 22
|
Перегрузка оператора +
Помогите, пожалуйста.
Проблема в операторе перегрузке +. Код взяла из книжки один к одному. Ошибка С 2137(на какой строке в коде обозначено). Что не так в этой строчке и если можно дополнительно написать перегрузку попроще (может функция strcat ). Что происходит в по коду после строки exit(1);} я не очень понимаю, так как все взяла из примера. class string { char *str; //строка int size; //размер строки public: string(); //конструктор по умолчанию string(char*a); //конструктор string(const string &s); //конструктор копий ~string(); //деструктор friend string operator+(string,const string); void print(); }; // перегрузка оператора + относительно класса string string operator+(string s1,const string s2) {string ss; //создается новый объект ss класса string ss.str=new char[strlen(s1.str)+strlen(s2.str)+2]; //выделяем память if(!ss.str) if(!ss.str) {cout<<"Oshibka pamyati\n"; exit(1);} for(int i=0; ss.str[i]=s1.str[i];i++); ss.str[i]=''; //ошибка error C2137: empty character constant for(int j=0; ss.str[i+1]=s2.str[j];i++,j++); return ss; } int main() { string s1("Peregruzka"); string s2("Operator"); s1.print(); s2.print(); string s4=s1; // это только вызов конструктора копирования cout<<"konstruktor s4:"; s4.print(); cout<<"operator +:"; s1+s2; s1.print(); return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
перегрузка оператора -> | alex_alpha | Общие вопросы C/C++ | 5 | 23.06.2010 19:07 |
С++ перегрузка оператора | cati | Помощь студентам | 10 | 21.04.2010 23:38 |
перегрузка оператора << | z3rg | Общие вопросы C/C++ | 18 | 02.03.2010 02:58 |
Перегрузка оператора + | z3rg | Общие вопросы C/C++ | 1 | 22.03.2009 03:06 |
Перегрузка оператора + (С++) | MjRed | Помощь студентам | 1 | 15.12.2008 18:57 |