(C ++) Проблема с перегрузкой ">>" оператор

голоса
0

После того, как я пытаюсь скомпилировать и запустить программу, зрительные показывает эту ошибку.

Ошибка 1 ошибка C2679: бинарная «>>»: ни один оператор не найден, который принимает правый операнд типа «сопзИте полукокс [2]» (или нет приемлемого преобразования)

Функция перегрузки:

istream& operator>> (istream& InputStream, Description& rhs) {
InputStream >> rhs.mNumber >> , >> rhs.mLenght >> , >> rhs.mName;

return InputStream;
}

Класс Описание Defintion:

class Description {
private:
    int mNumber;
    int mLenght;
    string mName;
public:
    Description();
    Description(int, int, string);
    Description& operator= (const Description&);
    friend ostream& operator<< (ostream&, Description&);
    friend istream& operator>> (istream&, Description&);
};

И да, я сделал:

#include <iostream>
#include <string>
#include <fstream>
#include <istream>
Задан 07/11/2018 в 20:08
источник пользователем
На других языках...                            


1 ответов

голоса
1

В соответствии

InputStream >> rhs.mNumber >> "," >> rhs.mLenght >> "," >> rhs.mName;

в ","части не правы. Вы не можете что - либо в строку буквального чтения.

Если вы ожидаете увидеть маркер ,во входном потоке, вы можете использовать:

char dummy;
InputStream >> rhs.mNumber >> dummy >> rhs.mLenght >> dummy >> rhs.mName;
Ответил 07/11/2018 в 20:14
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more