это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Настоящий класс ostream определяет операцию <<, чтобы сделать удобным вывод нескольких объектов одним оператором. Давайте посмотрим, как это сделано.
Чтобы определить @, где @ - некоторая операция языка C++, для каждого определяемого пользователем типа вы определяете функцию с именем operator@, которая получает параметры соответствующего типа. Например:
class ostream {
//...
ostream operator<<(char*);
};
ostream ostream::operator<<(char* p)
{
while (*p) buf.sputc(*p++);
return *this;
}
определяет операцию << как член класса ostream, поэтому s< ");
а если применить операцию взятия адреса, то вы получите адрес объекта, на который ссылается ссылка:
&s1 == &my_out
Первая очевидная польза от ссылок состоит в том, чтобы обеспечить передачу адреса объекта, а не самого объекта, в функцию вывода (в некоторых языках это называется передачей параметра по ссылке):
ostream& operator<<(ostream& s, complex z) {
return s << "(" << z.real << "," << z.imag << ")";
}
Достаточно интересно, что тело функции осталось без изменений, но если вы будете осуществлять присваивание s, то будете воздействовать на сам объект, а не на его копию. В данном случае то, что возвращается ссылка, также повышает эффективность, поскольку очевидный способ реализации ссылки - это указатель, а передача указателя гораздо дешевле, чем передача большой структуры данных.
Ссылки также существенны для определения потока ввода, поскольку операция ввода получает в качестве операнда переменную для считывания. Если бы ссылки не использовались, то пользователь должен был бы явно передавать указатели в функции ввода.
class istream {
//...
int state;
public:
istream& operator>>(char≈);
istream& operator>>(char*);
istream& operator>>(int&);
istream& operator>>(long&);
//...
};
Заметьте, что для чтения long и int используются разные функции, тогда как для их печати требовалась только одна. Это вполне обычно, и причина в том, что int может быть преобразовано в long по стандартным правилам неявного преобразования, избавляя таким образом программиста от беспокойства по поводу написания обеих функций ввода.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Исследуйте на сходимость числовой знакоположительный ряд
Решение задач, Математика
Срок сдачи к 20 янв.
Решить 2 задачи по гидравлике, объединить результаты в одну расчётно-графическую работу.
Решение задач, Гидравлика
Срок сдачи к 17 янв.
Тема в задании нужно сделать курсовую по организации пар Севастополь...
Курсовая, Бухгалтерская и налоговая отчетность
Срок сдачи к 15 янв.
Анализ доходов, расходов и финансовых результатов деятельности организации по данным отчета о финансовых результатах
Курсовая, Бухгалтерский учет анализ и аудит
Срок сдачи к 26 янв.
Технологическая (проектно-технологическая) практика
Отчет по практике, Педагогическое образование
Срок сдачи к 16 февр.
"Контрабанда растений, содержащих наркотические средства, психотропные вещества или их прекурсоры, либо их частей, содержащих наркотические средства"
Презентация, Уголовное право
Срок сдачи к 21 янв.
Заполните форму и узнайте цену на индивидуальную работу!