Я работаю над школьным проектом по реализации класса c ++ для полиномов.Что-то, что должен делать мой класс, - это читать полиномы из стандартного файла или из файла.Я думал о перегрузке >>, пока не прочитал следующее на моем любимом ссылочном сайте c ++ :
Обратите внимание, что операции извлечения istream используют пробелы в качестве разделителей, поэтому эта операция будет извлекать толькочто можно считать словом из потока.Чтобы извлечь целые строки текста, обратитесь к перегрузке строк глобальной функции getline.
Это вдохновило меня на перегрузку глобальной функции getline для моего полиномиального класса, чтобы он мог читать целые строки изфайл.Есть много учебников и статей, описывающих, как перегрузить оператор извлечения потока, но я не смог найти какие-либо подробности о getline.Должен ли я просто перегрузить его, как я хочу?Из ссылки видно, как это делается.
В некоторых из перегруженных функций getline, которые я видел (например, внизу страницы, на которую ссылаются), я заметил, что они возвращают что-то вроде «basic_istream»,Достаточно ли того, что я просто вернул istream?Как насчет "char_type"?Достаточно ли будет символа?
По сути, я хочу знать: перезагружает ли это что-то из этого, или есть какая-то привередливая деталь, о которой я должен беспокоиться?
Это заголовок, который яприготовлено:
class Polynomial {
public:
friend istream& getline(istream& is, Polynomial & poly);
friend istream& getline(istream& is, Polynomial & poly, char delim);
};
friend istream& getline(istream& is, Polynomial & poly) {
return getline(is, poly, '\n');
}
friend istream& getline(istream& is, Polynomial & poly, char delim) {
// read enough tokens to make a term
// stop when we get to the delimiter
return is;
}
Спасибо!