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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2017, 14:21   #1
artem55555p
Пользователь
 
Регистрация: 21.08.2013
Сообщений: 21
По умолчанию Сложение двух string методом перегрузки и помещение в потом

Собственный класс Stroka, представляющий строки символов из таблицы ASCII, с перегруженными операциями конкатенации двух строк и помещения в поток
Задача-то, собственно сделана, но не так, как сказано в условии.
PHP код:
#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 charsrc) : m_str(src) {};
    
stroka(const strokasrc) : m_str(src.m_str) {};

public:
    const 
strokaoperator++()
    {
        
transform(m_str.begin(),m_str.end(),m_str.begin(),tolower);
        return *
this;
    }

    const 
strokaoperator++(int)
    {
        return 
this->operator++();
    }

    
friend ostreamoperator<<(ostreamout,const strokastr)
    {
        return 
out << str.m_str;
    }
//сложение строк без перегрузки + (Работает)
    /*void add(const stroka &second)
    {
        m_str += second.m_str;
    }
*/
    
void print()
    {
        
cout << m_str;
    }
//(Сложение строк с помощью перегрузки "+", не работает) 
//Вот тут-то меня и настигла неизвестность.
    
friend strokaoperator+(const strokastr1, const strokastr2
    {
        
stroka result(strokastr1);
        
result strcat(str1.m_strstr2.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); //(Сложение строк без +, работает)
    
strstr+str2;//(Сложение строк с помощью перегрузки "+", не работает)
    
cout << "str+str2 = ";
    
str.print();
    return 
0;

сделал без потока и конкатенация не работает, можете помочь исправить?

Последний раз редактировалось artem55555p; 08.01.2017 в 14:49.
artem55555p вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение двух векторов Shkolota Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 14.05.2013 22:02
Сложение двух string методом перегрузки + MyQwErTy Помощь студентам 4 16.10.2012 22:25
сложение двух запросов. tema654 Microsoft Office Access 2 09.01.2012 23:09
сложение двух чисел pif Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 15.02.2009 12:51
Сложение двух матриц Аркадий Помощь студентам 5 26.04.2008 15:22