Лекция: ХІД ВИКОНАННЯ ПРОГРАМИ

ПРАКТИЧНА РОБОТА №4

Тема: Створення динамічного класу Array. Створення об’єктів, які мають необмежену кількість елементів динамічного масиву.

Мета: опанувати навички створення динамічних об’єктів, які мають необмежену кількість елементів динамічного масиву

ТЕОРЕТИЧНІ ВІДОМОСТІ

 

Перед виконання роботи самостійно повторити теоретичний матеріал « Динамічна пам’ять. Динамічні об’єкти»

ХІД ВИКОНАННЯ ПРОГРАМИ

  1. Розглянути наступну програму. Записати у звіт практичної роботи призначення наступних закрітіх членів класу Array: int m_iSize, m_iStep, m_iCurInd,*m_pAr.

  2. З’ясувати призначення функцій void AddMemory(), void Show(), void Add(int a), конструкторів Array (int iSize, int iStep);

  3. Виконати на ПК.

class Array

{ int m_iSize, m_iStep, m_iCurInd;

int *m_pAr;

void AddMemory();

public:

Array (int iSize, int iStep);

void Show();

void Add(int a);

~Array();

};//-----------Реалізація конструктора ініціалізації---------------------------------

Array::Array (int iSize, int iStep):m_iSize(iSize), m_iStep(iStep), m_iCurInd(0),

m_pAr(new int [iSize])

 

{

cout << «Array constr „<<m_iSize<<“ „<<this<<endl;

}

//---------------Реалізація функції Show()--------------------------------------------

void Array::

{

for (int i = 0; i < m_iCurInd; ++i )

cout << m_pAr[i]<<“ »;

cout<<endl;

}//---------------Реалізація функції Add(int a)---------------------------------------

void Array::Add(int a)

{

m_pAr[m_iCurInd++] = a;

if(m_iCurInd == m_iSize)

AddMemory();

}//---------------Реалізація деструктора---------------------------------------------

Array::~Array()

{

cout<<"~Array "<<m_iSize<<" "<<this<<endl;

delete [] m_pAr;

}//----------------Реалізація функції AddMemory()------------------------------------

void Array::AddMemory()

{

int * pAr = new int [m_iSize + m_iStep];

memcpy(pAr, m_pAr, m_iSize * sizeof(int));

delete [] m_pAr;

m_pAr = pAr;

m_iSize += m_iStep;

}

int main()

{

{ Array ar(10, 5);

for(int i = 0; i < 6; ++i)

ar.Add(rand()%21);

 

ar.Show();

}

return 0;

}

еще рефераты
Еще работы по информатике