Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Cтатичні члени класів і статичні класні функції. Не можна зрозуміти багато деталей роботи з масивами в C#, якщо не знати пристрій класу Array з бібліотеки FCL




Клас Array

Не можна зрозуміти багато деталей роботи з масивами в C#, якщо не знати пристрій класу Array з бібліотеки FCL, нащадками якого є всі класи-масиви. Розглянемо наступні оголошення:

//Клас Array

int[] ar1 = new int[5];

double[] ar2 ={5.5, 6.6, 7.7};

int[,] ar3 = new Int32[3,4];

Задамося природним запитанння: до якого або до яких класів належать об'єкти ar1, ar2 й ar3? Відповідь проста: всі вони належать до різних класів. Змінна ar1 належить до класу int[] - одномірному масиву значень типу int, ar2 - double[] - одномірному масиву значень типу double, ar3 - двовимірному масиву значень типу int. Наступне закономірне питання: а щозагального є в цих трьох об'єктів? Насамперед, всі три класи цих об'єктів, як й інші класи, є нащадками класу Object, а тому мають загальні методи, успадковані від класу Object і доступні об'єктам цих класів.

 

11. Статичні члени класу

Cтатичні члени класів і статичні класні функції

Доповнимо клас Employee визначенням вільного ідентифікаційного коду службовця. Самий простий спосіб — оголосити його статичною змінною:

static unsigned int currentId;

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

unsigned int Employee:: currentId = 0;

Відповідних змін може зазнати конструктор, в якому тепер стане на параметр менше. Залежно від обставин ним може виявитися додатково довизначений конструктор

 

12. Поняття перевантаження функції. Правила перевантаження функції. Приклади перевантаження функції – методів класу (конструкторів). Аргументи за замовчуванням.

 

Перевантаження функції - можливість у різноманітних мовах програмування, що дозволяє створювати кілька реалізацій функції(09051004010031000102000018методу) із тим же ім'ям проте з різною сигнатурою — з різною кількістю параметрів або з різним типом параметрів

 

Для того, щоб коректно використовувати механізм перевантаження функції небхідно дотримуватись правил:

а) кожна версія функція повинна мати відмінну від інших сигнатуру. Сигнатурою будемо називати набір, що містить кількість, послідовність і тип параметрів функції. В сигнатуру не входить тип, який повертає функція;

б) якщо функція містить параметри з аргументами по замовчуванні, то компілятор не вважає їх частиною сигнатури.

Приклад 1.3.8

# include <math>

# include <iostream>

double square (double);

double square (double, double);

double square (double, double, double);

main ()

{

std:: cout <<"Площа круга"<< square (1)<<'\n';

std:: cout <<"Площа прямокутника"<< square (1,2)<<'\n';

std:: cout <<"Площа трикутника"<< square (1,2,3)<<'\n';

}

double square (double d1){

return 3.14* d1 * d1;

}

double square (double d1, double d2){

return d1 * d2;

}

double square (double d1, double d2, double d3){

double p =(d1 + d2 + d3)/2;

return sqrt (p *(p - d1)*(p - d2)*(p - d3));

}

Аргументи за замовчуванням

Функції з аргументами по замовчуванні. В С++ вперше з'явилась можливість використання нового типу аргумента. Цей аргумент можна явно не вказувати, оскільки компілятор, в разі потреби, сам присвоїть йому значення. Якщо необхідно передати нове значення, то це здійснюється явно у виклику функції. Так визначений параметер функції називається параметром з аргументом по замовчуванні.

Іншими словами, технологія використання параметрів з аргументами по замовчуванні полягає у слідуючому: щоб передати параметру аргумент по замовчуванні, треба в оголошені функції прирівняти параметер до того значення, яке треба передати, якщо при викликуфункції відповідний аргумент не буде вказаний явно

Використовуючи аргументи по замовчуванні треба дотримуватись двох правил:

а) коли параметру призначається аргумент по замовчуванні, то й усім наступним параметрам треба призначати параметри по замовчуванні; усі звичайні параметри оголошуються попереду параметрів з аргументами по замовчуванні;

б) коли використовується значення аргумента по замовчуванні для деякого параметра, то й для усіх наступних параметрів треба використовувати значення аргументів по замовчуванні.

 

13. Перевантаження функцій та неоднозначність

14. Поняття дружності. Дружні функції. Дружні класи.

Властивість дружності (модифікатор friend) з'явилась з метою забезпечення необмеженого доступу до членів класу. Дружній клас або дружня функція мають доступ до будь-яких членів класу незалежно від свого оголошення.

Дружній клас чи дружні функція не є членами класу, стосовно якого вони декларуються дружніми. Реалізовуються вони у звичний для своєї структури спосіб. Однак в оголошенні класу, стосовно якого використовується механізм дружності, вони оголошуються із зарезервованим словом friend, тобто в тілі класу присутнї лише декларації дружності класів чи функцій.

Дружні функції – це функції, які не являються членами класу, хоча записуються у визначенні класу. Позначається словом Friend і записується в public

Дружні класи – це класи, що дозволяють надати повний доступ до членів свого класу. Для цього досить включити в оголошенні класу ім’я іншого класу, що оголошують дружнім.

 

15. Статичні члени класу.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 581 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

3252 - | 2877 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.