Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++ классы полиморфизм шаблоны

45K
21 апреля 2011 года
botasa
45 / / 31.12.2010
Помогите решить ... вот сделал 1 лаб. роботу, немного кривая но сойдет и нужно еще 3-и задания во 2 лабе ... мне кажется то что я попрошу не тяжело написать, уделите студенту-лентяю пару минут ... спасибо

Задания :

Цитата:
1) Создать шаблонный класс, содержащий шаблонную функцию, заданную в лаб. работе № 1. Пронаследовать данный класс. В производном классе добавить шаблонную функцию из соседнего варианта. Наследование делать открытым. Создать объект производного класса и вызвать функцию базового класса.
2) В базовом классе сделать шаблонную функцию виртуальной. Заместить эту функцию в производном классе функцией из соседнего варианта. Добавить еще одну функцию, которая не возвращает значение и только выводит сообщение. Наследование делать защищенным. Создать динамический объект. Исследовать механизм работы виртуальных функций, меняя тип объекта и тип указателя.
3) В базовом классе добавить чистую виртуальную функцию. Исследовать возможность создания объекта в производных классах. Объяснить, на каком этапе можно создать объект.



и моя лаб. роб. № 1

Код:
// 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;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог