Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

П_1_4_Указатели_friend

.pdf
Скачиваний:
10
Добавлен:
03.06.2015
Размер:
136.56 Кб
Скачать

Пример: сортировка (класс)

class clArrSort{ public:

ClArrSort(); // конструктор по умолчанию clArrSort(int c); // переопределяем конструктор int Count; //размер массива

int *Arr; //динамический массив

friend int getcount();// friend-функция void swap(int& a, int& b);// обмен void sort(bool flag);// сортировка

void output(); // вывод массива

int minmax(bool flag, int low, int hi); //поиск минимального/максимального значения ~clArrSort(); //деструктор

};

Пример (продолжение): конструктор

clArrSort::clArrSort(){} // по умолчанию clArrSort::clArrSort(int c)

{

Arr = new int[c]; Count = c;

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

{

cout << "Input "<< i << " element - "; cin >> Arr[i];

}

Пример (продолжение): обмен

void clArrSort::swap(int& a, int& b)

{

int temp; temp = a; a = b;

b = temp;

}

Пример (продолжение): поиск минимального/максимального

int clArrSort::minmax(bool flag, int low, int hi){ int mid = low;

int mval = Arr[low];

for (int i=low; i<hi; i++)

{

if (!flag){if (Arr[i]<mval){mval = Arr[i]; mid = i;}} else {if (Arr[i]>mval){mval = Arr[i]; mid = i;}}

}

return mid;

}

Пример (продолжение): сортировка

void clArrSort::sort(bool flag)

{

int low = 0; int hi = Count;

for (int i=low; i<hi; i++){

swap(Arr[i], Arr[minmax(flag,low, hi)]);

low++;

}

}

Полный листинг — sort.cpp

 

Далее

Принципы ООП

Наследование

Полиморфизм

Friend-классы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]