Хочу со3дать класс с сортировками, пока что есть одна с квадратичной сложностью. Со3дал класс - каждый метод будет сортировкой, но для ра3ных типов данных. Компилятор ругается, файл main.cpp:
#include "Sorts.h"
int main()
{
const int iSize = 10,
dSize = 7,
fSize = 10,
cSize = 255;
// массивы разных типов данных
int iArray[iSize] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
double dArray[dSize] = { 1.2345, 2.234, 3.57, 4.67876, 5.346, 6.1545, 7.7682 };
float fArray[fSize] = { 1.34, 2.37, 3.23, 4.8, 5.879, 6.345, 73.434, 8.82, 9.33, 10.4 };
char cArray[cSize];// = { "MARShdkeitocm8" };
for (int i = 0; i < 255; i++)
cArray[i] = i;
auto sorti = new Sorts<int>();
sorti->Sorting(iArray, iSize);
auto sortd = new Sorts<double>();
sortd->Sorting(dArray, dSize);
auto sortf = new Sorts<float>();
sortf->Sorting(fArray, fSize);
//sort->Sorting(fArray, fSize);
auto sortc = new Sorts<char>();
sortc->Sorting(cArray, cSize);
//sort->Sorting(cArray, cSize);
std::cout << "\t\t Шаблон функции вывода массива на экран\n\n";
// вызов локальной версии функции printArray для типа int через шаблон
std::cout << "\nМассив типа int:\n";
sorti->printArray(iArray, iSize);
// вызов локальной версии функции printArray для типа double через шаблон
std::cout << "\nМассив типа double:\n";
sortd->printArray(dArray, dSize);
// вызов локальной версии функции printArray для типа float через шаблон
std::cout << "\nМассив типа float:\n";
sortf->printArray(fArray, fSize);
// вызов локальной версии функции printArray для типа char через шаблон
std::cout << "\nМассив типа char:\n";
sortc->printArray(cArray, cSize);
return 0;
}
Файл Sorts.h
#pragma once
#include <iostream>
template <typename T> class Sorts
{
public:
T* Sorting(T* mas, int size);
void printArray(const T* arr, int count); // конец шаблона функции printArray;
};
#include "Sorts.h"
T* Sorts::Sorting(T* mas, int size)
{
T tmp;
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
if (mas[i] > mas[j])
{
tmp = mas[i];
mas[i] = mas[j];
mas[j] = tmp;
}
return (T*)mas;
}
void Sorts::printArray(const T* arr, int count)
{
for (int ix = 0; ix < count; ix++)
std::cout << arr[ix] << " ";
std::cout << std::endl;
} // конец шаблона функции printArray;