Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Перегрузка операцій

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Для підготовки даної праці були використані матеріали із російського сайту internet. Определяет операцію << члена класу ostream, тому s< «); Return p. s << «(»<< z. real << «, «<< z. imag << «) »; Ostream& operator<<(ostream& p. s, complex z) {. Ostream ostream: operator<<(char* p). Istream& operator>>(char≈); While (*p) buf. sputc (*p++); Istream& operator>>(long&); Istream… Читати ще >

Перегрузка операцій (реферат, курсова, диплом, контрольна)

Перегрузка операций

Настоящий клас ostream визначає операцію <<, щоб зробити зручним висновок кількох об'єктів одним оператором. Давайте подивимося, як і сделано.

Чтобы визначити @, де @ - деяка операція мови З++, кожному за що визначається користувачем типу ви визначаєте функцію безпосередньо з ім'ям 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& p. s, complex z) {.

return p. s << «(«<< z. real << «, «<< z. imag << «) » ;

}.

Достаточно цікаво, що тіло функції залишилося без змін, але коли ви будете здійснювати присвоювання p. s, то ви будете впливати на сам об'єкт, а чи не з його копію. У разі те, що повертається посилання, також підвищує ефективність, оскільки очевидний спосіб реалізації посилання — це покажчик, а передача покажчика набагато дешевше, ніж передача великий структури даних.

Ссылки також істотні визначення потоку введення, оскільки операція введення одержує у ролі операнда зміну для зчитування. Якби посилання не використовувалися, то користувач був би явно передавати покажчики у функції введення.

class istream {.

//…

int state;

public:

istream& operator>>(char≈);

istream& operator>>(char*);

istream& operator>>(int&);

istream& operator>>(long&);

//…

};

Заметьте, що з читання long і int використовують різні функції, тоді як їх друку була потрібна лише одне. Це дуже зазвичай, і причина у цьому, що int то, можливо перетворено на long за стандартними правилам неявного перетворення, позбавляючи в такий спосіб програміста від занепокоєння по приводу написання обох функцій введення.

Список литературы

Для підготовки даної праці були використані матеріали із російського сайту internet.

Показати весь текст
Заповнити форму поточною роботою