Читать лекция по информатике, вычислительной технике, телекоммуникациям: "Объектное программирование как технология программирования" Страница 5

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

памятью - malloc() и free(), которые выделяют и освобождают область памяти заданного размера (в байтах). В этой области программа может разместить переменную (или массив), которая называется динамической. При выделении памяти под динамическую переменную необходимо при помощи операции sizeof определять количество байтов, необходимое для размещения переменной указанного типа. В Си++ введены два оператора, аналогичные функциям malloc и free new и delete. Они отличаются от соответствующих функций тем, что допускают использования в качестве аргументов непосредственно спецификацию типа создаваемой динамической переменной и ссылки на динамическую переменную:Си++"Классический" Си

----------------------------------------------------------char*s,x[80];char*s,x[80];

dat*p,*q;struct dat *p,*q;

voidmain()void main()

{{

p = new dat;p = malloc(sizeof (struct dat));

q = new dat[15];q = malloc(15*sizeof (struct dat));

gets(x);gets(x);

s = new char[strlen(x)+1];s = malloc(strlen(x)+1);

......

delete p;free(p);

delete q;free(q);

delete s;free(s);

}Операторы имеют вид:delete2.6. Параметры функций по умолчанию

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

При определении формальных параметров функции может быть

указано его значение, принимаемое при вызове по умолчанию при

отсутствии этого параметра в списке фактических://----- Функция устанавливает по умолчанию текущее значение года,

//----- месяца и дня

#include voiddat::SetDat(int d=0, int m=0, int y=0)

{

struct date x;

getdate(&x);// Стандартная функция получения

// текущей даты

// Проверка на значение по умолчанию

year = (y == 0) ? x.da_year : y;

month= (m == 0) ? x.da_month: m;

day = (d == 0) ? x.da_day : d;

}2.7 Контроль преобразования типов ссылок

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

В "классическом" Си при выполнении присваивания, передаче фактических параметров происходит автоматическое преобразование ссылок к базовым типам данных (int,unsigned) и наоборот, а также преобразование одного типа ссылки к другому. В Си++ такие "вольности" исключены, программист должен сам выполнить явное преобразование. Например, при использовании функции распределения динамической памяти, имеющей прототип в "alloc.h"extern void*malloc(int n);dat*p;p = (dat *) malloc (10*sizeof(dat));

¦

L--- преобразование void* в dat*Естественно, что это преобразование типов фиктивное в том смысле, что не меняет значения ссылки и не приводит к генерации кода. Оно только меняет "точку зрения" транслятора на данную ссылку.2.8 Вставляемые (inline) функции

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

Если функция (обычная или элемент-функция структуры или класса) объявлены inline-функциями, то при вызове таких функций транслятор выполняет подстановку по тексту программы тела функции с соответствующей заменой формальных параметров на фактические. Элемент-функция также считается inline по умолчанию, если ее тело определено непосредственно в определении структуры (или класса),например:struct dat

{

intd,m,y;

voidSetdat(char *p) // Функция inline по умолчанию

{

...// Тело функции

}2.9 Ссылки на элементы структуры

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

Если структура имеет несколько элементов одного типа,то для нее может быть создана "внутренняя" ссылка, которая принимает значение внутреннего адреса (смещения) элемента относительно выбранной структуры. Формирование и использование такой ссылки ясно

из примера:struct dat

{

intday,month,year;

voidGetdat();

voidPutdat();

voidNextdat();

}intdat::*p;// Ссылка на элемент типа int

// в структуре dat

p = & dat::month;// Значение p - смещение


Похожие работы

 
Тема: Методические указания к выполнению курсовой работы по дисциплинам «Технология программирования» и «Программирование в информационных системах» Направление 230100 «Информатика и вычислительная техника»
Предмет/Тип: Другое (Учебное пособие)
 
Тема: Программирование на языке Shell в системе UNIX. Примеры программирования
Предмет/Тип: Информатика, ВТ, телекоммуникации (Резюме / рецензия)
 
Тема: Объектно-ориентированное программирование. Сравнительный анализ языков объектно-ориентированного программирования
Предмет/Тип: Отсутствует (Курсовая работа (т))
 
Тема: Государственное программирование в рыночной экономике. Цели направления и инструменты государственного программирования
Предмет/Тип: Эктеория (Курсовая работа (т))
 
Тема: Постановка задачи линейного программирования и двойственная задача линейного программирования.
Предмет/Тип: Математика (Реферат)

Интересная статья: Основы написания курсовой работы