Как работает это смещение прав: stringstream > > unsigned int > > без знака int?

3
задан NMC 17 March 2019 в 12:44
поделиться

1 ответ

C ++ позволяет перегружать операторы >> и <<. std::stringstream является производной от std::istream и наследует перегрузки операторов >> из std::istream.

std::istream имеет множество перегрузок для многих распространенных типов. Вы можете найти их список здесь .

Типичная перегрузка оператора std::istream >> выглядит следующим образом:

std::istream& operator>>(std::istream& stream, YourType& var) {
    /* 
    ** code here to parse and read a 'YourType' into 'var'
    */
    /* var is set */
    return stream; /* return the same stream to allow chaining */
}

Когда вы делаете some_stream >> YourType_object, вызывается соответствующая перегрузка оператора >>. В вышеупомянутом случае наша перегрузка оператора вызывается с параметром stream, принимающим some_stream, и var, принимающим YourType_object.

Перегрузки >> (и перегрузки << тоже) интеллектуально возвращают поток, которым они управляли; тем самым, позволяя объединить ряд операторов >>.

0
ответ дан Yashas 17 March 2019 в 12:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: