0

I was trying to overload operators in my template class, but compilator show error:

Error   C2676   binary '++': 'Iterator' does not define this operator or a conversion to a type acceptable to the predefined operator

I can`t find solution for my problem. This is my class:

#pragma once

template<typename T> class List;

template<typename T>
class Iterator
{
private:
    friend class List<T>;
    typename List<T> *pointer;
public:
    Iterator(List<T>* mPointer)
    {
        pointer = mPointer;
    }

    void operator ++ ()
    {
        if (pointer != NULL)
        {
            pointer = pointer->next;
        }
    }

};

And main:

#include "stdafx.h"
#include "Lista.h"
#include <iostream>
using namespace std;

int main()
{
    List<int> newList;
    int x = 2;
    newList.pushBack(x);

    Iterator<int> iterator(newList.end());
    cout << newList[iterator] << endl;

    iterator++;

    cin.get();
    cin.get();

    return 0;
}
Harshal Bhamare
  • 372
  • 1
  • 6
  • 17
Darek
  • 31
  • 1
  • 4

0 Answers0