Не перегружается оператор '>>'

271
19 октября 2017, 11:02

По какой причине может не перегружаться оператор '>>'

friend istream& operator>>(istream& in, Set& set)
    {
        if (set._capacity != 0)
            delete[] set._ptr;
        in >> set._capacity;
        in >> set._size;
        set._ptr = new T[set._capacity];
        for (size_t i = 0; i < set._size; i++)
            in >> set._ptr[i];
        return in;
    }

При передаче в качестве istream cin

    Set<int> voidSet();
    cin << voidSet;

Выдает ошибку:

Error   C2679   binary '>>': no operator found which takes a right-hand 
operand of type 'overloaded-function' (or there is no acceptable 
conversion) '   
Answer 1

Set<int> voidSet(); - это объявление функции voidSet, которая возвращает тип Set<int>.

Пишите Set<int> voidSet{}; или Set<int> voidSet;

READ ALSO
Вектор векторов строк

Вектор векторов строк

Имеется класс со структурой и полями:

380
Игнорирование условия в While С++

Игнорирование условия в While С++

Задание такое: заполнить матрицу Nного порядка и посчитать

318