Конструктори и деструктори
ü получите представа за конструктора и деструктора на класа;
ü получите представа за спецификатори за достъп.
В предишната лекция в определения клас и сложни стоки класа имат недостатъци. Първият от тях - липсата на автоматична инициализация на създадените обекти. За всеки новосъздаден комплекс клас на обект, трябва да се обадите дефиниция функция () или изрично чрез рафинирани имена за присвояване на стойности на данни за обектите, т.е. променливо повторно и им. Още два начина - получаване на начални стойности при инициализация и присвояване на стойности чрез изричен призив към функциите на компонента.
За да се инициализира класа на обекта в неговата дефиниция изрично включва специална функция компонент, наречен конструктор. Формат определяне конструктор в тялото на класа може да бъде:
<имя класса> (<список формальных параметров>)
<операторы тела конструктора>
Името на съставните функции в C ++ правила трябва да съвпада с името на класа. Такава функция се нарича автоматично при определяне на разположението или в паметта с новия оператор за всеки обект клас. Основната цел на строителя - инициализира обекти. За комплекс клас конструктор, можете да въведете еквивалентна функция дефиниция (), но се различава от него само по име:
комплекс дефиниция (флоат RE1, флоат IM1)
В съответствие с синтаксиса на език за конструктори не е определен тип замяна. Дори невалидни тип е невалиден. Използването на параметъра конструктор може да се предава всички данни, необходими за създаване и инициализира клас обект. стойност елементи "комплексно число" на обекта, се предават в комплекс конструктор. По подразбиране, се дължи на първоначалните стойности на параметрите формира комплексно число с нулеви реални и въображаеми части. Като цяло, дизайнерът може да бъде произволно сложен. Например, в класа на "матрица" конструктор ще памет за масиви, в която се представят матрицата - даден обект клас, след това се инициализира на масиви. Размерът на матрицата и първоначалните стойности на елементите дизайнер могат да получат параметри през машината като стойностите на компонентите на комплексно число в конструктор комплекс.
Вторият недостатък клас комплекс - Това е обществена компонент. Във всеки един момент в програмата, където "ясно" определение клас с помощта на рафинирани имена (например, <имя объекта>. или повторно <имя объекта>. не) или чрез указател към обект и експлоатация на непряк избор -> достъп до съставните данни на обекта. По този начин не е изпълнил на основния принцип на абстракция на данни - капсулиране (скривалище) данните в рамките на обекта. За да промените видимостта на компоненти в дефиницията на класа може да се използва за достъп до проектантите. Достъп спецификатор - тя е една от трите официално думата частен (частни), публични (обществени), защитено (частни), който е поставен на дебелото черво.
Формата на квалификатор:
Един компонент; // Обхват spetsifikatora1
Обикновено, свойствата на класа (съставни данни), приписвани спецификатор лично. и методи (функции на компонентите) - публично. Ако не е посочено достъп спецификатора, тогава структурите по подразбиране за достъп - публични. за всички други видове - частни. Външният вид на някакви спецификатори за достъп в дефиниция текст клас означава, че в края на определяне на или към друг клас спецификатор всички компоненти имат достъп до определен статус. Защитени (защитени) компонентите на класа необходими само в случай на изграждане на йерархия на класове. Когато се използва без генериране на класове на базата на някои други класове (производни) защитени прилагане спецификатор спецификатор е еквивалентно на използване лично. От този клас, като всички, чиито компоненти не са достъпни извън неговата дефиниция, рядко може да бъде полезно да се промени статута на достъп до компоненти позволяват на проектантите dostupaprivate (собствен), обществеността (обществото), защитена, (собствен).
Така че, за да се скрие данни в рамките на един клас на достатъчно обекти преди да се появят в дефиницията на типа (в клас) постави спецификатор лично. В този случай, че е необходимо всички или някои от функциите, които спадат към класа остана извън е достъпно, че ще манипулират данните за обект клас. Тези изисквания ще удовлетворяват следното определение клас "комплексно число":
// комплекс. Н - дефиницията на клас "комплексно число"
// клас с конструктор и данни капсулиране:
// методи на клас (всички обществено достъпни - публична):
// конструктор обект клас:
комплекс (флоат RE1, флоат IM1)