Главная страница
qrcode

Вопросы(2 сем)_лабы_инф. 1. Класс. Классы в С это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты


Скачать 21.73 Kb.
Название1. Класс. Классы в С это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты
АнкорВопросы(2 сем) лабы инф.docx
Дата16.10.2017
Размер21.73 Kb.
Формат файлаdocx
Имя файлаВопросы(2 сем)_лабы_инф.docx
ТипДокументы
#25818
Каталог


Вопросы.
1. Класс.

Классы в С++ - это абстракция описывающая методы, свойства, ещё не существующих объектов. Объекты - конкретное представление абстракции, имеющее свои свойства и методы. Созданные объекты на основе одного класса называются экземплярами этого класса. Эти объекты могут иметь различное поведение, свойства, но все равно будут являться объектами одного класса.


2. Агрегация.

В объектно-ориентированном программировании под агрегированием подразумевают методику создания нового класса из уже существующих классов путём включения, называемого также делегированием. Об агрегировании также часто говорят как об «отношении принадлежности» по принципу «у машины есть корпус, колёса и двигатель».

Вложенные объекты нового класса обычно объявляются закрытыми, что делает их недоступными для прикладных программистов, работающих с классом. С другой стороны, создатель класса может изменять эти объекты, не нарушая при этом работы существующего клиентского кода. Кроме того, замена вложенных объектов на стадии выполнения программы позволяет динамически изменять её поведение. Механизм наследования такой гибкостью не обладает, поскольку для производных классов устанавливаются ограничения, проверяемые на стадии компиляции.

На базе агрегирования реализуется методика делегирования, когда поставленная перед внешним объектом задача перепоручается внутреннему объекту, специализирующемуся на решении задач такого рода.

Агрегация (агрегирование по ссылке) — отношение «часть-целое» между двумя равноправными объектами, когда один объект (контейнер) имеет ссылку на другой объект. Оба объекта могут существовать независимо: если контейнер будет уничтожен, то его содержимое — нет.

class Professor;

class Department

{

private:

Professor* members[5]; // Aggregation, т.к. нет оператора delete

};

class Ehe // Пример агрегаци

{

private:

Person& _partner1; // Enthaltener Teil. // Aggregation

Person& _partner2; // Enthaltener Teil. // Aggregation

public:

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

Ehe (Person& partner1, Person& partner2)

: _partner1(partner1), _partner2(partner2)

{ }

};

Композиция (агрегирование по значению) — более строгий вариант агрегирования, когда включаемый объект может существовать только как часть контейнера. Если контейнер будет уничтожен, то и включённый объект тоже будет уничтожен.

class Department;

class University

{

private:

Department faculty[20]; // Composition

};

class Carburetor;

class Automobile

{

private:

Carburetor* itsCarb;

public:

Automobile() {itsCarb=new Carburetor();}

virtual

Automobile() {delete itsCarb;} // Composition, т.к. объект itsCarb будет удалён

};


3. Наследование. Типы и проблемы.

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


4. Перегрузка операторов.


5. Виртуальные функции, vtable.
6. Абстрактные классы, чисто виртуальные функции.
7. Структуры данных (стек, очередь, лист, ...).
8. Три источника, три составные части, в классике и у Алиева.
9. Полиморфизм.


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


10. Static. функции, поля.
11. Friend. кишки.
12. Конструкторы, деструкторы.
13. Тринадцатый вопрос.

перейти в каталог файлов


связь с админом