Форум программистов, компьютерный форум CyberForum.ru

Перегрузка - C++

Восстановить пароль Регистрация
 
vasyapupkin89
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 15
24.12.2011, 01:07     Перегрузка #1
Дали задачу, на перегрузку строк вот один из операторов который надо перегрузить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
      stringg&  operator+=( stringg a) {
                            char *temp=new char [strlen(str)];
                             strcpy(temp,str);
                            delete [] str; 
                            str = new char [strlen(temp)+strle(a.str)]
                                                                //Использую для пердотвращения переполнения
                         
 
                                 strcpy(str,temp);
                                strcat(str,a.str);
                            
                            return *this ;}
Так вообще делать можно? У меня оно работает только до 252 символов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2011, 01:07     Перегрузка
Посмотрите здесь:

C++ C++ Перегрузка
C++ Перегрузка << и >>
Перегрузка в c++ C++
C++ перегрузка []
Перегрузка () C++
перегрузка -- C++
Перегрузка >> C++
C++ Перегрузка ++ и --

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_A_L
 Аватар для S_A_L
8 / 8 / 0
Регистрация: 22.12.2011
Сообщений: 14
24.12.2011, 01:40     Перегрузка #2
C++
1
2
3
4
5
6
7
8
9
10
const stringg& operator += ( const stringg &a )
{
    char *temp = new char [ strlen ( str ) + 1];
    strcpy ( temp, str );
    delete[] str;
    str = new char [ strlen ( temp ) + strlen ( a.str ) + 1];
    strcpy ( str, temp );
    strcat ( str, a.str );
    return *this;
}
vasyapupkin89
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 15
24.12.2011, 02:01  [ТС]     Перегрузка #3
Получается я про \0 забыл))) спасибо.
Yandex
Объявления
24.12.2011, 02:01     Перегрузка
Ответ Создать тему
Опции темы

Текущее время: 16:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru