|
Хочу получить удостоверение. Сколько стоит оплата? |
Опубликован: 10.12.2015 | Доступ: свободный | Студентов: 617 / 96 | Длительность: 07:10:00
Тема: Программирование
Специальности: Программист, Системный архитектор
Лекция 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 >