Страницы

Поиск по вопросам

вторник, 9 апреля 2019 г.

'cout << …' или 'cout.put(…)'?

Что лучше использовать для вывода на консоль символов: 'cout << ...' или 'cout.put(...)'?


Ответ

Функция-член класса put стандартного класса basic_ostream, объявленная как
basic_ostream& put(char_type c)
предназначена только для объектов типа char_type, Она не перегружена для объектов других типов. Поэтому, например, чтобы написать эквивалентный вывод данным предложениям
int x = 10;
std::cout << "x = " << x << std::endl;
вам придется писать
int x = 10;
std::cout.put( 'x' ).put( ' ' ).put( '=' ).put( ' ' ) << x << std::endl;
что выглядит очень вычурно.
Внутренне такие функции, как, например, std::endl и std::ends используют функцию put. То есть эта функция считается функцией низшего уровня. В прикладных программах лучше использовать operator << , который перегружен для всех стандартных типов и кроме того может быть перегружен для пользовательских типов. При этом код с использованием этого оператора выглядит более естественным и не вызывает вопросов.
На низшем уровне, например, когда вы реализуете свою функцию более высокого уровня, как, например, тот же самый оператор operator << вы можете использовать функцию put

Комментариев нет:

Отправить комментарий