В мире
Самое читаемое на сайте
Последние новости
Новости: 19.02.18Выбор и выгодный заказ могильной плиты 30.11.17 Когда необходим проект ПНООЛР? 11.09.17 Преимущества использования тепловентиляторов 14.08.17 Посредничество в получении кредита 17.06.17 Немного об автобусных турах 17.05.17 Как ухаживать за робот-пылесосом? 04.05.17 Печать рекламы на пакетах: достоинства 29.04.17 Профлист: особенности и достоинства 26.04.17 Запчасти редуктора по привлекательным ценам 17.04.17 Чистый воздух в собственном доме Календарь новостей
|
ВНИМАНИЕ!!!
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ!!!
Сайт поменял владельца и на нём грядут большие перемены.
Убедительная просьба не пользоваться покупкой рефератов через смс.
ДАННЫЙ СЕРВИС БОЛЬШЕ НЕ РАБОТАЕТ
Стоит вопрос об его удалении, дабы сделать рефераты бесплатными. Извините за неудобство и спасибо за понимание
Поиск реферата
Реферат, курсовая, контрольная, доклад на тему: Перегрузка операцийПерегрузка операцийНастоящий класс 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 по стандартным правилам неявного преобразования, избавляя таким образом программиста от беспокойства по поводу написания обеих функций ввода. Список литературыДля подготовки данной работы были использованы материалы с сайта http://www.realcoding.net
Рекомендуем
|
Поиск по сайту
Рекомендуем
Подписка на новости
Нас считают
Онлайн
Ваш IP: 3.82.52.91
Сейчас на сайте
![]() ![]() |