Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
29 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231

Сложение двух string методом перегрузки и помещение в поток

08.01.2017, 14:49. Показов 1685. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственный класс Stroka, представляющий строки символов из таблицы ASCII, с перегруженными операциями конкатенации двух строк и помещения в поток
Задача-то, собственно сделана, но не так, как сказано в условии.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <vector>
#include <sstream>
#include <strstream>
#include <string>
#include <algorithm>
using namespace std;
 
 
class stroka
{
    string m_str;
 
public:
 
    stroka(const char* src) : m_str(src) {};
    stroka(const stroka& src) : m_str(src.m_str) {};
 
public:
    const stroka& operator++()
    {
        transform(m_str.begin(),m_str.end(),m_str.begin(),tolower);
        return *this;
    }
 
    const stroka& operator++(int)
    {
        return this->operator++();
    }
 
    friend ostream& operator<<(ostream& out,const stroka& str)
    {
        return out << str.m_str;
    }
//сложение строк без перегрузки + (Работает)
    /*void add(const stroka &second)
    {
        m_str += second.m_str;
    }
*/
    void print()
    {
        cout << m_str;
    }
//(Сложение строк с помощью перегрузки "+", не работает) 
//Вот тут-то меня и настигла неизвестность.
    friend stroka& operator+(const stroka& str1, const stroka& str2) 
    {
        stroka result(stroka& str1);
        result = strcat(str1.m_str, str2.m_str);
        return result;
    }
 
};
int main()
{
    char line[256];
    cout << "Enter line, 255 chars max!" << endl;
    cin.getline(line,255);
    stroka str(line);
    cout << "To lower (operator++) : " << (str++) << endl;
    char line2[256]; 
    cout << "Enter line, 255 chars max!" << endl;
    cin.getline(line2,255); 
    stroka str2(line2);
    str.add(str2); //(Сложение строк без +, работает)
    str= str+str2;//(Сложение строк с помощью перегрузки "+", не работает)
    cout << "str+str2 = ";
    str.print();
    return 0;
}
сделал без потока и конкатенация не работает, можете помочь исправить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2017, 14:49
Ответы с готовыми решениями:

Функция addarray(): сложение соответствующих элементы двух массивов и помещение результата в третий массив
Напишите функцию с именем addarray(), принимающую два массива в качестве аргументов одинаковой длины. Функция должна складывать...

Сложение двух чисел, имеющих тип string
Итак, нужно сложить два числа, например a+b. Но загвоздка в том, что они должны иметь тип string. Нужно написать такую программу, чтобы она...

Сложение двух чисел, имеющих тип string
Итак, нужно сложить два числа, например a+b. Но загвоздка в том, что они должны иметь тип string. Нужно написать такую программу, чтобы она...

22
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
08.01.2017, 16:55
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от artem55555p Посмотреть сообщение
Вопрос, как это сделать
Так я же написал: Сложение двух string методом перегрузки и помещение в поток
0
29 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
09.01.2017, 10:06  [ТС]
Так я и не понял, как это сделать, можете помочь, объяснить?

Добавлено через 14 часов 45 минут
вы можете показать как и объяснить?
0
29 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
10.01.2017, 16:08  [ТС]
вы тут?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2017, 16:08

Класс Комплексные числа. Извлечение и помещение в поток
Дано такое задание Создать класс представляющий понятие комплексных чисел с переопределёнными операциями сложения,вычитания,помещения в...

Выполнить объединение двух строк с помощью перегрузки оператора (*)
#define _CRT_SECURE_NO_WARNINGS #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; class String { char *str; int...

Конкатенация двух нибблов (сложение двух полубайт в байт)
Как из этих двух полубайт получить полноценный байт со значение &quot;0x3e&quot;? unsigned char first_nibbl = 0x03 unsigned char last_nibbl =...

Как можно обрабатывать разные типы одним и тем же методом кроме перегрузки
Здраствуйте, интересует такой вопрос. Есть классы A,B,C. Класс С принимает внутри себя классы A и B методом GetClass class a ...

Open Watcom нет перегрузки для оператора ввода для типа std::string
Решил использовать компилятор Open Watcom C++ и в результате не компилируется проект. Проект прилагается


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru