Объектно-ориентированное программирование



         

Объектно-ориентированное программирование - стр. 74


2.2. Отношения между классами

 

Одной из важнейших черт ОПП является наличие механизма наследования свойств одного класса другими классами. Он позволяет строить новые классы на базе ранее созданных и этим самым способствует повторной используемости результатов процесса программирования.

 Программа может включать в себя набор базовых классов, которые не связаны ни с какими другими. На основе базовых классов строятся производные классы, которые наследуют от базовых классов их структуры данных и методы. Таким образом, производные классы становятся расширением базовых, при этом они не включают в себя детали реализации базовых классов.

Рассмотрим пример, иллюстрирующий механизм взаимодействия между базовым и производными классами:

//bassear.h

class basearray

{protected:

 int maxitems:                          //максимальное число элементов

int citems;                      //число размещенных элементов

public:                                     //конструктор

basearray(int nitems){maxxitems=nitems; citems=0;};

};

//irray.h

class iarray : public basearray

{private:

int *items;

public:

iarray(int nitems);                    //конструктор

_iarrray();                      //деструктор

int putitem(int item)                //занесение элемента в массив

int getitem(int ind;int &item); // получение элемента из массива

int count({return citems;});     //получение числа элементов

};

Исходный текст методов класса iarray приведен ниже:

//iarray.cpp

#include “basearray.h”

#include “iarray.h”

iarray:iarray(int nitems):basearray(nitems)          //конструктор

{items=new int[nitems];}

iarray::_iarray()                                //деструктор

{delete items;}

int iarray::putitem(int item)              //занесение элемента в массив

{ if (citems<maxitems){

items[citems]=item;

citems++;

return 0;

}

else return –1;

}

int iarray:getitem(int ind,int &item)            //получение элемента из массива

{ if(ind>=0 && ind<citems){




Содержание  Назад  Вперед