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

Урок 23. конструктора и деструктора

Когато се създават обекти един от най-често използваните операции, които ще се представят в програмите си, то е да се инициализира елементите на обекта на данните. Както научихте в Урок 22, единственият начин, чрез който можете да получите достъп до частни елементите на данните, е използването на клас от функции. За да се опрости процеса на инициализиране на елементи от данни клас, C ++ използва специална функция, наречена конструктор, който се кандидатира за всеки обект, който създавате. По същия начин, C ++ осигурява функция нарича деструктор, който започва, когато един обект е унищожен. Този клас конструктор и деструктор са обсъдени по-подробно. До края на този урок ще се научите на следните основни понятия:

Конструкторът е метод на класа, която улеснява вашата програма да се инициализира елементи от данни класа.

Конструкторът има същото име като на класа.

Конструктор няма стойност замяна.

Всеки път, когато програмата ви създава променлива клас, C ++ е клас конструктора, ако е налице дизайнер.

Много обекти могат да заделят памет за съхраняване на информация; когато изтриете даден обект, C ++ деструктор ще свика специално, което може да се освободи тази памет, изчистването след обекта.

Destructor има същото име като на класа, с изключение на това, което трябва да предхожда Тилдата име (

Destructor няма стойност замяна.

Условия конструктор и деструктор не трябва да ви плаши. Вместо това, представете си, дизайнер, като функция, която ви помага да се изгради (дизайн) обект. По същия начин, деструктор е функция, която ви помага да унищожи обекта. Деструкторът обикновено се използва, когато се разрушава обект, ако имате нужда, за да освободи паметта, която се проведе на обекта.

Конструкторът е метод на класа, който има същото име като на класа. Например, ако използвате клас, наречен на работника или служителя, дизайнерът ще имат и името на служителя. По същия начин, за този клас с името на дизайнерските кучетата ще бъде кучета име. Ако вашата програма е дефиниран конструктор, C ++, автоматично ще го наричаме всеки път, когато се създаде обект. Следваща CONSTRUC.CPP програма създава клас име на служителите. Програмата също така е дефиниран конструктор име служител, който възлага на първоначалната стойност на обекта. Въпреки това, строителят не връща никаква стойност, независимо от факта, че той не е обявен за нищожен. Вместо това, вие просто не уточняват типа на връщане:

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

служител :: служител (Чар име *, дълго employee_id, флоатно заплата)

Както можете да видите, строителят не извика функцията връща стойност. За да не се използва тип нищожно. В този случай, дизайнерът използва глобалната оператора и да разреши името на класа пред името на всеки елемент, както е описано в Урок 23. По-долу CONSTRUC.CPP изпълнението на програмата:

служител :: служител (Чар име *, дълго employee_id, флоатно заплата)

работник служител ( "Happy Ясма", 101 10101.0);

Ако вашата програма трябва да се създадат няколко обекта на служителя, може да се инициализира на елементите на всеки един от тях с помощта на дизайнера, както е показано по-долу:

работник служител ( "Happy Ясма", 101 10101.0);

мениджър на служителите ( "Джейн Доу", 1022, 30000.0);

Идеята на дизайнера

Конструкторът е специална функция, която C ++ автоматично се обажда всеки път, когато се създаде обект. Обичайната цел конструктор е да се инициализира елементите на обекта на данните. Конструкторът има същото име като на класа. Например, един клас, наречен файл с помощта на дизайнер на име на файла. Определяте конструктор в програмата си, както и всеки метод клас. Единствената разлика е, че строителят няма стойност замяна. Когато направи обект, по-късно, можете да подадете параметрите на строителя, както е показано по-долу:

CLASS_NAME обект (valuel, стойност 2, VALUE3)

Дизайнери и настройки по подразбиране

Както вече знаете от урок 15, C ++ позволява да посочите стойности за параметрите на функция. Ако потребителят не посочи никакви параметри, функцията използва стойности. Дизайнерът не е изключение; програмата ви да посочите стойност по подразбиране за него по същия начин, както и за всяка друга функция. Например, следния конструктор или служителят използва стойност по подразбиране, равна на заплатата на 10000.0, ако програмата не показва заплатата, когато се създава обект. Въпреки това, програмата трябва да посочите име и номер на служителя:

служител :: служител (Чар име *, дълго employee_id, флоат заплата = 10000.00)

Както вече знаете от урок 13, C ++ дава възможност на програма за претоварване определения функцията за указване алтернативни функции за други видове параметри. C ++ позволява да се претовари и дизайнери. Следваща CONSOVER.CPP програма претоварва строителя служител. Първият строителя изисква програмата, за да посочите име, номер на служител на работника или служителя и заплата. Вторият строителя иска от потребителя да въведе необходимата работна заплата, ако програмата не го посочва:

служител :: служител (Чар име *, дълго employee_id)

Вътре дефиницията на класа трябва да кажа, прототипи и за двете дизайнери, както е показано по-долу:

По-долу CONSOVER.CPP изпълнението на програмата:

служител :: служител (Чар име *, дълго employee_id, флоатно заплата)

служител :: служител (Чар име *, дълго employee_id)

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

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

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