Форум программистов, компьютерный форум, киберфорум
Наши страницы

Абстракция данных...модули определяющие типы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ namespace Страуструп 3-е издание http://www.cyberforum.ru/cpp-beginners/thread342566.html
Добрый вечер народ) Читаю книгу Страуструпа 3-е издание там встретился такой фрагмент кода: namespace Stack { void push(char); char pop(); } void...
C++ Преобразование типа class ne { public: ne(); ~ne(); double x1; char l; }; ne O; ne::~ne(){}; http://www.cyberforum.ru/cpp-beginners/thread342561.html
C++ Необходимо указать на ошибки. Код по заданию из книги.
Начал учить c++ по книге. Компилирую под debian в g++. Поскольку я почти ничего не смыслю в программировании, то мне необходима помощь тех, кто бы смог тыкнуть носом в ошибки. Задание в книге...
Сбор release версии программы с++, на MinGW C++
Есть такая проблема: компилирую программу из под Windows 7, на MinGW g++ -o test.exe test.cpp например. Я не пользуюсь средами, так как они мне пока не нужны, и все компилирую с консоли. ...
C++ Тема для диплома http://www.cyberforum.ru/cpp-beginners/thread342534.html
Помогите подобрать тему для дипломной работы! Хочу чтобы диплом включал в себя возможность показать знание язака программирования,а также чтобы в нем была задействованна практическая предметная...
C++ Итератор ? Как выглядит итератор на вложеный контейнер? Например осуществить доступ к 1-му символу 3-го элемента в векторе vector< <vecrot<char> > vec через индекс можно так vec. А как через итератор? подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
5006 / 3064 / 149
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
16.08.2011, 20:05
Абстракция данных - это, грубо говоря, отделение интерфейса от реализации, выделение существенных для вас деталей и отход на второй план несущественных, тонкостей. Т.е. взять, к примеру, вектор (std::vector). Вы можете создать вектор и запихивать туда элементы с помощью метода push_back. При этом вам не нужно задумываться, что при очередном вызове push_back памяти в векторе может не хватить и что необходимо будет каким-то образом расширить память путём перевыделения новой области памяти большего размера, копирования туда элементов из старой памяти и освобождения старой памяти (как вариант, возможны другие решения). Для вас все эти действия - несущественные детали. Существенно же для вас то, что вы вызвали push_back, элемент сохранился в векторе и лежит там спокойнёхонько до следующего обращения.
Таким образом, вы манипулируете не сырыми данными (указатель на массив, размер массива и т.д.), а абстрагируетесь от них и управляете этими сырыми данными на высоком уровне - с помощью интерфейсных методов.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru