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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2015, 16:17   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну и в чем проблема объединить? В результате должен получиться список с элементами (значениями) из первых двух.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.09.2015, 16:22   #12
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

А как в методе класса опередить то, что в левой и правой частях от + должны быть переменные типа МойКласс.

В этом классе, как я понял нужно описать :

Метод add для заполнения первого И второго и т.д списка

И оператор плюс, который их объединит?

не очень разбираюсь в перегрузке
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 04.09.2015, 16:30   #13
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну дык разберитесь, почитайте что-нибудь. Например ссылку с первой страницы.
+ вроде бы обычно через += реализовывают.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.09.2015, 16:33   #14
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

переводчик кривой, а смысл использовать += тогда, когда в задаче результат нужно сохранить в отдельном списке?

А вот если так: а+=с, то все будет в а
Я подумал новый список заполнить элементами первого, потом второго
from dark to light)

Последний раз редактировалось Алексей_2012; 04.09.2015 в 16:35.
Алексей_2012 вне форума Ответить с цитированием
Старый 04.09.2015, 16:47   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Чтобы были оба оператора. И в + создается копия, а в += нет, только ссылки.
Поэтому можно просто реализовать += (изменение текущего, this, а через него +)
Код:
class X {
  X& operator+=(const X& rhs)
  {
    // добавление rhs к *this
    ...


    return *this;
  }
};

X operator+(X lhs, const X& rhs)
{
  lhs += rhs;
  return lhs;
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 04.09.2015 в 16:55.
Alex11223 вне форума Ответить с цитированием
Старый 04.09.2015, 20:35   #16
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

А вот так, как я пытаюсь - не получится?
Код:
#ifndef SPISOK
#define SPISOK
#include <iostream>


using namespace std;


struct spisok
{
int chislo;
spisok *next=NULL;
};

class naprav_spisok
{

private: struct spisok *HEAD;

public:
    naprav_spisok();//конструктор
    ~naprav_spisok();//даструктор


    naprav_spisok operator +(naprav_spisok*one,naprav_spisok *two);//сумматор двух элементов списка

    void add(int new_chislo);

};


#endif // SPISOK
*.cpp
Код:
#include "spisok.h"


spisok *curritem;

naprav_spisok::naprav_spisok()
{


}



void naprav_spisok::add(int new_chislo)
{
    curritem->next = new spisok;
    curritem =  curritem->next;
    curritem->next = NULL;
    curritem->chislo = new_chislo;
}
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 04.09.2015, 20:39   #17
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык сделайте += (это и проще, чем +, не надо создавать никакой новый объект и добавлять оба в него) и бесплатно получите +, как в примере выше.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.09.2015, 21:21   #18
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Все равно, проблема в том, что QT даже не компилит это
Код:
naprav_spisok operator +(naprav_spisok*one,naprav_spisok *two);
На счет +=...мне бы с простым плюсом разобраться сначала

В принципе, алгоритм придумал, но вот не пойму, зачем в качестве поля класса - голова списка?

з.ы. туплю
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 04.09.2015, 21:27   #19
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Говорю ж += проще.

Чего там думать над алгоритмом? Проходите переданный список (rhs) и вызываете add для добавления всех значений в this.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка оператора c++ Arrioh Общие вопросы C/C++ 2 05.01.2013 08:46
Qt объекты сигналы и слоты Aistn Qt и кроссплатформенное программирование С/С++ 5 05.06.2011 05:09
qt сигналы и слоты DANATER Помощь студентам 3 27.03.2011 22:21
перегрузка оператора = mcpro Общие вопросы C/C++ 8 04.02.2011 15:28
С++ перегрузка оператора cati Помощь студентам 10 21.04.2010 23:38