// next3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
template <typename Any>
Any *sort_mas_down(Any *mas,int size)
{
Any templ;
int *position;
position=new int[size];
for (int x=0; x<size; x++)
position[x]=x;
int tempint;
for (int x=0; x<size; x++)
{
for (int y = x+1; y < size; y++)
{
if(mas[y]>mas[x])
{
templ=mas[x];
mas[x]=mas[y];
mas[y]=templ;
tempint=position[x];
position[x]=position[y];
position[x]=tempint;
}
}
}
return mas;
}
template <typename See>
void show(See *mas, int size)
{
cout <<"‚Ё¤б®ав®ў**Ё© ¬*бЁў :"<<endl;
for (int i=0; i<size; i++)
cout <<mas;
}
int _tmain(int argc, _TCHAR* argv[])
{
int columns=1000, rows=3000;
FILE* stream;
float **b;
float *b_2, *feature_masiv;
stream = fopen("test_3.dat","rb");
b_2=new float[columns];
feature_masiv=new float[rows];
b= new float*[rows];
for(int j = 0; j <columns; j++)
b[j]=new float[rows];
if (stream)
{
for(int i=0;i<columns;i++)
fread(b,sizeof(float),rows,stream);
fclose(stream);
}
int k=0;
for(int i=0;i<rows;i++)
{
feature_masiv[k]=b[0];
k++;
}
cout<<*sort_mas_down(feature_masiv,rows);
show(feature_masiv,rows);
_getch();
return 0;
}
C++ классы полиморфизм шаблоны
Задания :
Цитата:
1) Создать шаблонный класс, содержащий шаблонную функцию, заданную в лаб. работе № 1. Пронаследовать данный класс. В производном классе добавить шаблонную функцию из соседнего варианта. Наследование делать открытым. Создать объект производного класса и вызвать функцию базового класса.
2) В базовом классе сделать шаблонную функцию виртуальной. Заместить эту функцию в производном классе функцией из соседнего варианта. Добавить еще одну функцию, которая не возвращает значение и только выводит сообщение. Наследование делать защищенным. Создать динамический объект. Исследовать механизм работы виртуальных функций, меняя тип объекта и тип указателя.
3) В базовом классе добавить чистую виртуальную функцию. Исследовать возможность создания объекта в производных классах. Объяснить, на каком этапе можно создать объект.
2) В базовом классе сделать шаблонную функцию виртуальной. Заместить эту функцию в производном классе функцией из соседнего варианта. Добавить еще одну функцию, которая не возвращает значение и только выводит сообщение. Наследование делать защищенным. Создать динамический объект. Исследовать механизм работы виртуальных функций, меняя тип объекта и тип указателя.
3) В базовом классе добавить чистую виртуальную функцию. Исследовать возможность создания объекта в производных классах. Объяснить, на каком этапе можно создать объект.
и моя лаб. роб. № 1
Код: