Dodawanie kontenerów

0

Witam, czy ktoś podpowie mi jak mam napisać definicję operatora dodawania dwóch kontenerów (listy dowiazaniowe dwukierunkowe). Zacząłem ale chyba robię coś źle...

#include <iostream>

using namespace std;
template <class TYPE>
struct Nod
{
    TYPE s;
    Nod *next, *prev;
};

template <class TYPE>
class Kontener
{
private:
    Nod<TYPE>* front;
    Nod<TYPE>* back;
    unsigned counter;

public:
    Kontener();
    ~Kontener();
    int size();

    void push_back(const TYPE& s); // dodanie na koniec
    void pop_back(); // usuniecie z konca

    void push_front(const TYPE& s);
    void pop_front();
    Kontener& operator+(const TYPE& s);
};

a tu moja próba dodania :

template <class TYPE>
void Kontener<TYPE>::Kontener&
operator+(const TYPE& s)
{
    dodawanie na koniec elementy Nod<TYPE>* new_nod = new Nod<TYPE>();
    kont2->prev = back;
    kont2->next = NULL;


    back->next = kont1;
    back = cont1;
}

Czy ktoś pomoże?

1
  1. Piszesz, że chcesz dodać kontenery, a w swojej implementacji operator+ próbujesz dodać tylko jedną wartość typu TYPE.
  2. Wynikiem dodawania dwóch kontenerów jest nowy kontener, więc operator+ nie powinien być typu void.
  3. Podpowiedź:
template <class TYPE>
Kontener<TYPE> Kontener<TYPE>::operator+(const Kontener<TYPE> &cont) const
{
	Kontener<TYPE> sum;
	// Dodaj do niego wszystkie bieżące elementy Nod (lub zaimplementuj konstruktor kopiujący).
	// Następnie dodaj do niego wszystkie elementy Nod z kontenera cont.
	return sum;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1