ПредишенСледващото

В сравнение с клас complexl нов клас комплекс, с изключение на функцията конструктор допълнително въведени компонент повторно () и IM (), с което за достъп до обектите на данни. Те се връщат връзка съответно на реални и въображаеми части на обекта, към който те се наричат.

Спомнете си, че дизайнерът не уточни вида на връщане стойност. Има функции в извикването на конструктора. Без изричното програмист дизайнер винаги автоматично се позовава на определението (създаване) на обекта на класа. Той използва по подразбиране параметри стойности конструктор. Например, като се посочва предмета на нея имплицитно конструктор повикване

Ние получите обаждане SS. Re () стойност от 1.0. cc.im () връща позоваване cc.imag, и този елемент на обект НК ще имат стойност от 0,0, стойността по подразбиране, определен като параметър конструктор.

Така че, "дизайнер превръща част от паметта на обекта, на който да изпълнява рутинни система от правила" [2], т.е. обект от типа, който предвижда определянето на класа.

съществува Дизайнерът за всеки клас, и това може да се създаде, без инструкции изрично програмиста. По този начин, за класове на стоки и complexl там се генерира автоматично от дизайнерите.

По подразбиране не се образува-аргумент конструктор и копиране конструктор на формата Т :: T (Конст T), където T - името на класа. Например,

Това дизайнер е винаги там. Конструкторът по подразбиране копие създава публично. Класът може да бъде няколко конструктори (претоварване), но само един с параметри по подразбиране стойности.

Конструкторът не може да се нарече като функция нормален компонент. две различни синтактични форми могат да бъдат използвани, за да се обадя изрично строителя:

imya_ клас object_name (fakticheskie_parametry_konstruktora);
клас име (fakticheskie_parametry_konstruktora);

Първата форма е разрешено само ако не е празен списък на действителните параметри. Тя осигурява конструктор повикване при определянето на нов обект от този клас:

комплекс SS (10.3,0.22); // SS.real == 10.3;
// SS.imag == 0.22
комплекс д (2,345); // == EE.real 2.345;
// EE.imag подразбиране == 0.0
комплекс DD (); // Грешка! Компилаторът решава, че е
// функция прототип без параметри,
// връща комплекс

Втората форма на изричен призив към строителя води до създаването на един обект, който няма име. Създаден от предизвикателството на неназован обект може да се използва в тези условия, когато е възможно да се използва обект от този клас. Например:

Това определение е създадена ZZ обект, който е настроен на неназован обект (с елементи на недвижими == 4.0, на изображения == 5.0), създаден за сметка на изрична конструктор повикване.

Има два начина да се инициализира обект на данни чрез конструктори. Първият метод, предавателните параметри на тялото на конструктор, вече е показано в примерите. Вторият метод включва използването на списък на обект инициализатори данни. Този списък се поставя в списъка на параметрите и тялото на конструктор:

клас име (параметър spisok_):
spisok_initsializatorov_ данни компонент <тело_конструктора>

Всеки списък инициализатор се отнася до специфичен компонент и има следния вид:

imya_komponenta_dannyh (експресията) Например:
клас А до Я публичния:
AZ (INT в изплуват ен, знак CN). II (5)
й (II * ен + в), СС (CN) <>
>;
Я А (2,3.0, "D"); // Създаване на име обект A
// == A.II с компоненти 5,
// == A.ee 17 A.cc == "г"
AZ X = Я (0,2.0, "Z"); // Създаване на неназован обект в
Където II == // 5, неговата == 10
// вв == "Z", и копирани
// в обект X

Тези характеристики дизайнери, споразумение за статута на достъп на компоненти и нова концепция за "деструктор" илюстрира следното определение за клас "символен низ":

//STROKA.CPP - файл с дефиницията на клас "характер
// низ "
#include // За библиотечни функции низ
#include
клас stroka
знак * СН; // указател към низ текст
Int лен; // Дължината на низа за текст
публичния: // Държавните функции:
клас обекти // конструкторите:
// създаване на нов обект, като празен низ:
stroka (междинно съединение N = 80):
// Низът не съдържа информацията:
дъл (0)
гл [0] = '\ 0 ";
> // Създава обект на даден низ:
stroka (конст * CHAR арка)
СН = нов знак [дъл + 1];
strcpy (СН, арка);
>
инт len_str (свободен) // Връща дължината справка низ

Чар * низ (свободен) // Връща указател към низ

нищожен дисплей (свободен) // Отпечатва информация за линия

object_name. imya_ елемент

Вторият етап предвижда третиране на съставни данни противопоставят указател към предмета:

За да обобщим определен клас компонент. Въпреки че данните навън компонент клас могат да бъдат подобни на данните, посочени в блока или в тялото на функцията, но има някои значителни разлики. клас на данни не е необходимо да бъдат идентифицирани или описан преди първото им използване в принадлежност към функциите на класа. Същото се отнася и за функциите, които спадат към класа, т.е. обжалване от един клас в друг функция може да бъде на неговото определяне, в тялото на класа. Всички компоненти на класа "видим" за всички оператори на тялото му.

Ето защо, в допълнение към обхват "файл", "блок", "функция" в C ++ въведен специален обхват "клас".

За компонент клас в един екземпляр, и не е повторен при създаването на всеки нов обект клас, тя трябва да бъде определен в един клас, като статично, т.е. трябва да има атрибута статична. Някои функции са статични компоненти вече са били демонстрирани от примера на класа "продукти на склад склад."

Статични компоненти класа след инициализация, които можете да използвате програмата, преди определяне на обектите от този клас. Такава възможност за публични данни предвижда квалифицирано име на компонента. Когато определя най-малко един клас на обект, който може да се справи статични компоненти като традиционните компоненти, т.е. чрез компонент операция избор клас (и ''. "->"). Има възниква една трудност. За статичен клас данни при спазване на правилата на статут на достъп. Когато статични данни е частен или статут на защитена територия. След това те могат да бъдат достъпни от външната страна чрез съставните функции. Всеки път, когато ти се обадя функция компонент, трябва да укажете името на даден обект. По време на лечение с класа обекти и статични такива данни може да бъде или още не е определена, или може да има няколко, и всеки компонент е подходящ за функциите за повикване. Неназовани обекти обикновено са компонент извикване на функция не може да бъде в съответствие със синтаксис. Но какво обект, за да избере да се обадя, защото всеки един елемент от статичен клас в него? Бих искал да бъде в състояние да направи, без да е името на определен обект, при достъп до статично клас данни. Такава възможност осигурява статични функции на отделните компоненти.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!