Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Динамические структуры данных




 

Синтаксис языка С++ допускает определение структуры с элементами, которые являются указателями на тип самой структуры. Это позволяет создавать динамические типы с произвольным числом таких структур, связанных вместе.

Н а п р и м е р: struct type_list {

type data;

type_list * next;} *list_1;

list_1= new type_list;

1 2 3

list_→ datа data data

next next next = 0

 

Здесь list_1 – указатель на начало списка; data – данные типа type; next – адрес следующего элемента типа type_list или 0.

Через указатель на начало списков осуществляется доступ к данным, хранящимся в элементах.

 

 

Задания

Разработайте алгоритм и программу, реализующую структурированный тип данных (СТД), согласно варианту. Определите функции инициализации, присваивания, вывода содержимого и обработки (сортировка, поиск, сравнение, арифметические действия и т.д.).

Варианты СТД:

1. Динамический вектор;

2. Динамическая матрица;

3. Динамический куб;

4. Динамический стек;

5. Динамическая очередь;

6. Линейный связанный список;

7. Динамический массив комплексных чисел;

8. Мультивектор, содержащий три вектора;

9. Персонал;

10. Библиотека.

Проверьте работоспособность СТД на тестовом наборе данных.

Контрольные вопросы

 

1. Что такое структуры и объединения? Сформулируйте правила инициализации.

2. Опишите механизм передачи структур функциям.

3. По какому принципу создаются динамические структуры данных?

4. Объясните, что представляет собой массив структур?

5. В каких случаях возникает необходимость использовать вложенные структуры и объединения?

Р а з д е л IV

РАЗРАБОТКА АБСТРАКТНЫХ ТИПОВ ДАННЫХ

Цель работы: изучить способы определения классов, правила доступа к элементам; приобрести практические навыки работы с объектами класса; изучить принципы и механизмы создания абстрактных типов данных.

Основные теоретические положения

 

Определение классов

Класс – это гетерогенный агрегатный тип, имеющий элементы, данные и элементы функций, обеспечивающий сокрытие данных и наследование.

Структура класса имеет вид:

 

class имя_типа {public: // элементы доступны и наследуются

----- ------ -------

----- ------ -------

protected: //элементы защищены и наследуются

----- ------ -------

----- ------ -------

private: //элементы закрыты, не наследуются

----- ------ -------

----- ------ -------

};

 

Спецификаторы доступа public, protected и private определяют степень открытости элементов, которые следуют за ними.

По умолчанию элементы структуры являются открытыми, элементы класса – закрытыми.

Компонентные функции

 

Функции, объявленные или определенные внутри класса, являются компонентными. Они имеют доступ к закрытым, защищенным и открытым элементам своего класса, могут быть перегруженными.

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

 

 

Дружественные функции

 

Дружественная функция должна быть объявлена внутри объявления класса, по отношению к которому она является дружественной, с использованием спецификатора friend. Такая функция имеет доступ к закрытым элементам класса наряду с компонентными функциями. Дружественными могут быть как внешние, так и компонентные функции, в этом случае для указания имени функции в дружественном классе используется оператор разрешения области видимости ::.

 

Н а п р и м е р:

 

class A {-----

friend int B:: f(); // f() - компонентная функция класса В, дружественная классу А

};

class C {----

friend class B; // все компонентные функции класса В являются дружественными классу С

};

class D {----

friend D f(D); // f() - внешняя функция, дружественная классу D

};

 

 

Указатель this

 

Ключевое слово this неявно объявляет указатель на себя. Может иметь место только в нестатических компонентных функциях. Заменяет объявление закрытого элемента:

 

class_type * const this.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 446 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2221 - | 2091 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.