46259

Парадигма ООП. Классы и объекты. Области видимости. Конструкторы. Деструкторы

Доклад

Информатика, кибернетика и программирование

Наследование позволяет создавать иерархию объектов, в которой объекты-потомки наследуют все свойства своих предков. Свойства при наследовании повторно не описываются. Кроме унаследованных, потомок обладает собственными свойствами

Русский

2013-11-20

13.32 KB

3 чел.

4. Парадигма ООП. Классы и объекты. Области видимости. Конструкторы. Деструкторы.

Объектно-ориентированная парадигма программирования

• Инкапсуляция - скрытие деталей реализации, объединение данных и действий над ними

• Наследование позволяет создавать иерархию объектов, в которой объекты-потомки наследуют все свойства своих предков. Свойства при наследовании повторно не описываются. Кроме унаследованных, потомок обладает  собственными свойствами

• Полиморфизм -  возможность  определения единого по имени действия, применимого ко всем объектам иерархии, причем каждый объект  реализует это действие собственным способом

Термины класс и объект часто взаимозаменяемы, но в действительности классы описывают типы объектов, а объекты — это используемые экземпляры классов. Поэтому процесс создания объекта называется созданием экземпляра. Если использовать сравнение с чертежом, то класс является чертежом, а объект является зданием, построенным по нему.

class SampleClass

{

}

Области видимости 

class имя

{

private:

   описание скрытых элементов

public:

   описание доступных элементов

};

• public – область открытых полей класса

• private – область закрытых полей класса

• protected – закрыта для пользователя, открыта для наследников

Конструкторы

• Конструктор не возвращает значение, даже void. Нельзя получить указатель на конструктор.

• Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации (при

этом используется механизм перегрузки).

• Конструктор, вызываемый без параметров, называется конструктором по умолчанию.

• Параметры конструктора могут иметь любой тип, кроме этого же класса. Можно задавать значения параметров

по умолчанию. Их может содержать только один из конструкторов.

• Если программист не указал ни одного конструктора, компилятор создает его автоматически. Такой конструктор

вызывает конструкторы по умолчанию для полей класса и конструкторы по умолчанию базовых классов.

• Конструкторы не наследуются.

• Конструкторы нельзя описывать как const, virtual и static

// constructors.cpp

// compile with: /c

class MyClass {

public:

  MyClass(){}

  MyClass(int i) : m_i(i) {}

private:

  int m_i;

};

Деструкторы

• Деструктор вызывается автоматически, когда объект уничтожается

• Всегда начинается с символа тильда (~)

~Monster() {

delete [] name;

}

• Не имеет аргументов и возвращаемого значения

• Не может быть объявлен как const или static

• Может быть виртуальным


 

А также другие работы, которые могут Вас заинтересовать

10648. Управление конфигурацией в жизненном цикле программных средств 200.5 KB
  Управление конфигурацией в жизненном цикле программных средств 1. Процессы управления конфигурацией программных средств 2. Этапы и процедуры при управлении конфигурацией программных средств Вопрос 1. Процессы управления конфигурацией пр...
10649. Разработка требований к программным средствам 196 KB
  Тема: Разработка требований к программным средствам 1. Организация разработки требований к сложным программным средствам 2. Процессы разработки требований к характеристикам сложных программных средств 3. Структура основных документов отражающих требования к прогр
10650. Пакеты программ MathCad и Excel 247 KB
  Лабораторная работа 1 Пакеты программ MathCad и Excel Подавляющее большинство лабораторных работ по курсу Численные методы может быть выполнено на базе программ MathCad и Excel которые содержат все необходимые вычислительные инструменты; удобны в испо...
10651. Действия над приближенными числами 153.5 KB
  Лабораторная работа 2 Действия над приближенными числами Цель работы. Изучить правила округления приближенных чисел на примере сходимости степенного ряда к известному значению и с заданной точностью. Освоить понятия абсолютной и относительной погрешностей и ...
10652. Решение систем линейных уравнений 263.5 KB
  Лабораторная работа 3 Решение систем линейных уравнений Цель работы. Выяснить какие технические и технологические задачи встречающиеся на практике приводят к системам линейных уравнений. Исходя из таблиц опытных данных научиться составлять такие сис
10653. Отделение корней уравнений. Уточнение корней методом Ньютона 146 KB
  Лабораторная работа 4 Отделение корней уравнений. Уточнение корней методом Ньютона. Цель работы. Изучить способы отделения корней уравнений после чего методом дихотомии найти три интервала изоляции для алгебраического уравнения третьего порядка. Выбрав од...
10654. Уточнение корней уравнений методом итераций 147.5 KB
  Лабораторная работа 5 Уточнение корней уравнений методом итераций. Цель работы. Уточнить корень алгебраического уравнения с заданной степенью точности используя метод итераций построить график сходимости и сравнить его с методом Ньютона. Теоретиче
10655. Построение эмпирической формулы методом наименьших квадратов 280 KB
  Лабораторная работа 6 Построение эмпирической формулы методом наименьших квадратов. Цель работы. Для опытных данных представленных в виде таблицы подобрать такую аналитическую зависимость которая бы приближенно выражала исследуемый процесс.
10656. Интерполирование функций методом Лагранжа. Линейная интерполяция 291 KB
  Лабораторная работа 7 Интерполирование функций методом Лагранжа. Линейная интерполяция. Цель работы. По результатам эксперимента заданным в виде последовательности точек на координатной плоскости построить интерполяционную функцию методом Лагранжа...