2. Место языков программирования в предметной области «Информатика»


Название2. Место языков программирования в предметной области «Информатика»
страница6/8
Дата публикации06.05.2013
Размер0.82 Mb.
ТипДокументы
userdocs.ru > Информатика > Документы
1   2   3   4   5   6   7   8

^ 45. Операция косвенной адресации также является унарной, обозначается знаком * и ее операндом может быть только
адресное выражение, т.е. выражение, значениeм которого является адрес памяти.Операция косвенной адресации записывается в виде:

*_адресное_выражение_ 

В результате выполнения операции косвенной адресации происходит обрашение к памяти по адресу, определяемому значением адресного выражения, и из этого
адреса извлекаeтся данное либо по этому адресу посылается данное в зависимости от контекста использования операции. Например, если мы рассмотрим фрагмент программы:

int q,b,*pq;

q=5; pq=&q;

b=*pq;

Основной операцией при работе с указателями является получение доступа к значению, адрес которого хранится в указателе.
Например:
int *pn, n;
*pn = 5;
n = *pn;
Выражение *pn имеет такой же смысл, как имя целой переменной. Операция <<*>> называется разыменованием.
Действие, обратное к разыменованию, позволяет получить адрес переменной по ее имени. Например, pn = &n;, эта операция называется взятие адреса. 


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

Ячейкам свободной памяти нельзя присвоить имя, можно лишь зарезервировать определенное количество ячеек и запомнить их адрес в указателе. С помощью указателей и осуществляется доступ к участкам динамической памяти.

Указатели применяются в следующих случаях:

-управление данными в свободной (динамической) области памяти;

-передача данных между функциями по ссылке.

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

Важным преимуществом динамической памяти является то, что выделенная в ней область не может использоваться в других целях до тех пор, пока не будет освобождена явно. Поэтому, если во время работы функции в динамической памяти выделяется область, ее можно использовать и по завершении работы функции. Другим преимуществом использования динамической памяти является то, что доступ к данным в ней можно получить только из тех функций, которые обладают доступом к указателю, хранящему нужный адрес. Это позволяет избегать нежелательного или случайного изменения данных. Для выделения участка памяти в динамически распределяемой области используют ключевое слово new:

указатель = new выражение; Аргументом для оператора new служит выражение, возвращающее число байтов, которые необходимо зарезервировать в области динамической памяти.


^ 47. Создание и удаление объектов в динамической памятью

-new - выделение памяти, если выделение памяти не произошло возвращается нулевой указатель;

-delete - освобождение памяти, не во всех компиляторах после освобождения памяти указателю присваивается 0.

Пример:

#include

using namespace std;

int main() {

// создание объекта типа int со значением 45

// и сохранение его адреса в указателе obj

int* obj = new int(45);

// освободили память на которую указывал obj

cout<<"*obj="<<*obj<
delete obj;

класс auto_ptr

Класс auto_ptr из библиотеки STL имеет следующие ограничения:

-объектом может владеть только один указатель,

-объектом не может быть массив,

-нельзя использовать адресную арифметику.

Пример

#include // здесь объявление шаблона класса auto_ptr

#include

using namespace std;

// Внутри функции мы выделяем память для объекта типа int

// но не освобождаем ее явно оператором delete.

// Это делается автоматически при выходе из функции,

// когда уничтожаются все локальные переменные.


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

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

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

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

// объявление классов в С++

class /*имя класса*/

{

  private:

  /* список свойств и методов для использования внутри класса */

  public:

  /* список методов доступных другим функциям и объектам программы */

  protected:

  /*список средств, доступных при наследовании*/
1   2   3   4   5   6   7   8

Похожие:

2. Место языков программирования в предметной области «Информатика» iconПонятие программы и программирования. Свойства программ. Назначение...
Системы счисления. Сущность перевода чисел из одной системы счисления в другую: примеры
2. Место языков программирования в предметной области «Информатика» iconТема 1: Эволюция языков программирования
Процедурное программирование, Объектно-ориентированное программирование (ооп), Декларативные языки программирования
2. Место языков программирования в предметной области «Информатика» icon2. Место проведения производственной практики
«Прикладная информатика в экономике», «Прикладная информатика в менеджменте», «Автоматизированные системы обработки информации и...
2. Место языков программирования в предметной области «Информатика» iconСписок вопросов по дисциплине информатика
Место информатики в современном научном знании. Предмет и структура информатики. Цели и задачи курса "Информатика"
2. Место языков программирования в предметной области «Информатика» iconПринципы объектно-ориентированного программирования: инкапсуляция,...
Принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм реализованные в языках C++ и С#
2. Место языков программирования в предметной области «Информатика» iconWeb-программист Вам предстоит
Разработка программных продуктов с использованием языков программирования: php, JavaScript
2. Место языков программирования в предметной области «Информатика» icon«6 этап кубка Федерации Триатлона Ленинградской области». Место проведения
Место проведения: п. Крестцы, Новгородской области, лыжная трасса «Козлово болото»
2. Место языков программирования в предметной области «Информатика» iconУчебно-методическое пособие
При изучении дисциплины Информатика студенты-заочники выполняют контрольную работу, целью которой является приобретение навыков алгоритмизации...
2. Место языков программирования в предметной области «Информатика» iconКонтрольная работа по курсу “Методы программирования и информатика”...
Дана вещественная матрица а размерности (). Составить программу, реализующую указанные действия. Формат вывода
2. Место языков программирования в предметной области «Информатика» iconВопросы по дисциплине: " Разработка и эксплуатация информационных систем "
Описание предметной области. Назначение и область применения. Технические характеристики. Постановка задачи
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2015
контакты
userdocs.ru
Главная страница