П_1_4_Указатели_friend
.pdfПример: сортировка (класс)
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-классы