Головна |
вставкою (Insertion) в мові С ++ називають операцію виведення, а оператор « - оператором вставки, тому що дозволяє вставити що виводиться, в потік. Оператор вставки можна перевантажити. При перевантаженні « для виведення створюється функція вставки (inserter function).
Формат функції вставки:
ostream & operatior « (ostream & stream, імя_ класу ob)
{Тіло функції вставки
return stream;
}
Перший параметр - посилання на об'єкт класу ostream. Це означає, що stream повинен бути потоком виводу. Другий параметр - об'єкт, на який буде поширюватися функція вставки. Повертає функція вставки посилання на stream, Який має тип ostream.
Функція вставки не є функцією-членом класу, для роботи з яким вона була створена. Тому для доступу до закритих членів класу функцію вставки потрібно зробити дружній цього класу.
Функції введення в С ++ називаються функціями вилучення, Тому що при введенні інформації з потоку витягаються дані.
Формат функції вилучення:
istream & operator » (istream & stream, імя_ класу & ob)
{Тіло функції вилучення
return stream;
}
istream & stream - посилання на потік введення
імя_ класу & ob - Посилання на об'єкт, який одержує інформацію
Функція повертає посилання на потік введення. Функція не є членом класу.
#include "iostream"
#include "string.h"
class inventory {char item [40];
int onhand;
double cost;
public: inventory (char * i, int o, double c) {strcpy (item, i);
onhand = o;
cost = c;
}
friend ostream & operator « (ostream & stream, inventory ob);
friend istream & operator » (istream & stream, inventory & ob);
};
ostream & operator « (ostream & stream, inventory ob)
{Stream « ob.item « ":" « ob.onhand « "шт.";
stream « "на руках за ціною" « ob.cost « "\ n";
return stream;
}
istream & operatior » (istream & stream, inventory & ob)
{Cout « "введіть назву предмета";
stream » ob.item;
cout « "введіть число предметів, виданих на руки";
stream » ob.onhand;
cout « "введіть вартість виданого примірника";
stream » ob.cost;
return stream;
}
main ()
{Inventory («олівець», 4, 12.55);
cout « ob;
cin » ob;
cout « ob;
return 0;
}
МАНІПУЛЯТОРИ ВВЕДЕННЯ-ВИВЕДЕННЯ | ОСНОВИ файлового вводу-виводу
структури | Імя_структури. імя_елемента | Структури і функції | динамічні структури | Структура пов'язаного двонаправленого списку | Int fseek (FILE * stream, long offset, int origin). | інкапсуляція | спадкування | Неформатіруемий двійковий введення / виведення | Додаткову інформацію про функції двійкового введення / виведення |