Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
14
Добавлен:
23.03.2015
Размер:
63.56 Кб
Скачать

Конструктор и деструктор класса

Конструктор класса — это специальная функция, которая автоматически вызывается сразу после создания объекта этого класса. Он не имеет типа возвращаемого значения и должен называться также, как класс, в котором он находится. По умолчанию, заполним двойками массив с промежуточными оценками студента.

class Students {

public:

// Конструктор класса Students

Students(int default_score)

{

for (int i = 0; i < 5; ++i) {

scores[i] = default_score;

}

}

private:

int scores[5];

};

int main()

{

// Передаем двойку в конструктор

Students *student = new Students(2);

return 0;

}

Мы можем исправить двойки, если ученик будет хорошо себя вести, и вовремя сдавать домашние задания. А на «нет» и суда нет :-)

Деструктор класса вызывается при уничтожении объекта. Имя деструктора аналогично имени конструктора, только в начале ставится знак тильды ~. Деструктор не имеет входных параметров.

#include <iostream>

class Students {

public:

// Деструктор

~Students()

{

std::cout << "Memory has been cleaned. Good bye." << std::endl;

}

};

int main()

{

Students *student = new Students;

// Уничтожение объекта

delete student;

return 0;

} (https://code-live.ru/post/cpp-classes/)

  1. Инкапсуляция - это свойство, позволяющее объединить в классе и данные, и методы, работающие с ними и скрыть детали реализации от пользователя.

  2. Наследование - это свойство, позволяющее создать новый класс-потомок на основе уже существующего, при этом все характеристики класса родителя присваиваются классу-потомку.

  3. Полиморфизм - свойство классов, позволяющее использовать объекты классов с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Так как элементы данных объявлены в private, то и доступ к ним могут получить только методы класса, внешний доступ к элементам данных запрещён. Поэтому принято объявлять в классах специальные методы — так называемые set и get функции, с помощью которых можно манипулировать элементами данных. set-функции инициализируют элементы данных, get-функции позволяют просмотреть значения элементов данных. 

Структуры

Структуры – составные типы данных построенные с использованием других типов.

Struct time {

int hour;

int minute;

int second;

};

Ключевое слово struct начинает определение структуры. Идентификатор time – это тег(обозначение структуры). Тег структуры используется при объявлении переменных структур данного типа. Элементы одной структуры должны иметь уникальные имена, но две разные структуры могут содержать не конфликтующие элементы с одинаковыми именами. Каждое определение структуры должно заканчиваться точкой с запятой (и для класса). Элементы структуры могут быть одного типа, и одна структура может содержать элементы разных типов. Структура не должна содержать экземпляры самой себя.

Структура содержащая элемент, которая является указателем на такой же структурный тип называется структурой самоадресации

Данное определение структуры не резервирует никакого пространства в памяти. Переменные структуры объявляются также, как и переменные других типов.

Time timeObject; // объявляет переменные типа time

timeArray[10]; // объявляет массив

*timePtr;