Хочу получить удостоверение. Сколько стоит оплата? |
Опубликован: 10.12.2015 | Уровень: для всех | Доступ: платный
Лекция 21:
Перегрузка методов класса
< Лекция 20 || Лекция 21 || Лекция 22 >
Методы классов можно перегружать, так же как и любые другие функции С++.Перегрузка функций означает, что одно и то же имя могут использовать несколько функций. Компилятор выбирает нужную функцию в зависимости от сигнатуры. В приводимом ниже примере перегружены две функции сортировки - сортировка методом отбора и сортировка методом вставки.
//========================================================== // Name : class_overload.cpp // Author : Marat // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //========================================================== #include <iostream> using namespace std; #include<string.h> #define array_size 6 class sorting_algoritms { public: void sort (int *item, int count); void sort (double *item, int count); void print(int *item, int count); void print(double *item, int count); }; //Функция сортировки методом отбора void sorting_algoritms::sort(int *item, int count) { register int a,b,c; int exchange; int t; for(a=0;a<count-1;++a) { exchange=0; c=a; t=item[a]; for(b=a+1;b<count;++b) { if(item[b]<t) { c=b; t=item[b]; exchange=1; } } if(exchange) { item[c]=item[a]; item[a]=t; } } } //Функция сортировки методом вставки void sorting_algoritms::sort(double *item, int count) { register int a,b; double t; for(a=1;a<count;++a) { t=item[a]; for(b=a-1;b>=0 && t<item[b];b--) item[b+1]=item[b]; item[b+1]=t; } } //функция печати целых чисел void sorting_algoritms::print (int *item, int count) { for(int i=0;i<count;i++) { cout<<" "<<item[i]; } } //функция печати вещественных чисел void sorting_algoritms::print (double *item, int count) { for(int i=0;i<count;i++) { cout<<" "<<item[i]; } } int main() { int a[array_size]={1,15,-4,6,8,7}; double b[array_size]={0.63, 3.14, 2.71, -0.5, 29.8, 6.5}; sorting_algoritms data; cout<<"\nUnsorted integer array..."; data.print(a,array_size); data.sort (a,array_size); cout<<"\nInteger array after sorting..."; data.print(a,array_size); cout<<"\nUnsorted float array..."; data.print(b,array_size); data.sort (b,array_size); cout<<"\nFloat array after sorting..."; data.print(b,array_size); cout<<"\n"<<endl; return 0; }
Результат:
Unsorted integer array... 1 15 -4 6 8 7 Integer array after sorting...-4 1 6 7 8 15 Unsorted float array... 0.63 3.14 2.71 -0.5 29.8 6.5 Float array after sorting... -0.5 0.63 2.71 3.14 6.5 29.8
< Лекция 20 || Лекция 21 || Лекция 22 >