Конструкторы и деструкторы
В С++ определены два специальных типа методов – конструкторы и деструкторы. Конструкторы предназначены для инициализации элементов данных объектов. Деструкторы – для их удаления. Описание конструктора: идентификатор_конструктора (список параметров) {тело конструктора} Идентификатор конструктора должен совпадать с именем класса. У конструктора не указывается тип возвращаемого значения (даже void). Для класса Massiv конструктор может быть объявлен так: Massiv (int *b, int m) { n=m; for (int i=0; i<n; i++) a[i]=b[i]; } Конструктор может иметь значения параметров по умолчанию. Правила использования конструкторов: - если конструктор не вызывается явно, то он вызывается автоматически при создании объекта с использованием значений параметров по умолчанию; - если конструктор не описан явно, он генерируется транслятором автоматически. Вызывать конструктор можно так: имя_класса имя_объекта = имя_конструктора (список фактических параметров); имя_конструктора имя_объекта (список фактических параметров); Деструктор уничтожает объект класса и освобождает оперативную память, занимаемую его элементами данных. Деструктор представляет собой метод с именем, совпадающим с именем класса, перед которым стоит символ ~ (тильда). Деструктор не должен иметь ни параметров, ни типа возвращаемого значения. Описание: ~имя_класса () {операторы;} Например: ~Massiv () {}; Деструктор вызывается явно или неявно. Явно деструктор вызывается при необходимости уничтожения объекта. Полиморфизм Полиморфизм – многообразие форм. Это свойство, которое позволяет использовать одно имя для обозначения различных действий для одного или нескольких родственных классов. К формам полиморфизма в С++ относятся:
Перегрузка функций и операций – это статический полиморфизм, т.к. связи между функциями устанавливаются на этапе компиляции. Перегрузка операций С++ позволяет переопределить действие большинства операций так, чтобы при использовании с объектами конкретного класса они выполняли заданные функции. Это дает возможность использовать собственные типы данных точно так же, как стандартные. Обозначения собственных операций вводить нельзя. При перегрузке унарной операции операндом является вызывающий класс. При перегрузке бинарной операции в качестве первого операнда выступает вызывающий класс, второй операнд задается в качестве аргумента. Синтаксис: тип_результата operator операция(формальные_параметры); Например, Massiv operator +(int k); Пример 2.Реализовать класс для операций над числами в системе счисления с основанием р (1<p<10). Решить задачу: Дан массив чисел в р-ичной системе счисления. Найти НОД этих чисел. function changeProof(proofobj) { if (proofobj.style.display=='none') {proofobj.style.display='inline'} else {proofobj.style.display='none'} } Просмотреть листинг решения
Пример 3. Описать класс для работы с неотрицательными длинными числами и реализовать следующие операции:
function changeProof(proofobj) { if (proofobj.style.display=='none') {proofobj.style.display='inline'} else {proofobj.style.display='none'} } Просмотреть листинг решения
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (526)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |