Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2013, 18:41   #1
winst2014
Пользователь
 
Аватар для winst2014
 
Регистрация: 15.09.2009
Сообщений: 15
По умолчанию Инстанцирование шаблона для различных типов

Помогите пожалуйста с программой...
Нужно создать шаблон класса, для работы со структурой произвольного типа данных.
В функции main() показать использование созданного класса, включая ситуации, приводящие к генерации исключений; показать инстанцирование шаблона для различных типов (int, float, string).
queue.h
Код:
#pragma once
#include <string.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class queue
    {
    private:
        struct Point
        {
            int key;
            Point *next; 
        };
        Point *pervii_element; 
        Point *tecushii_element;
 
    public:
        queue();
        ~queue(void);
        void operator + (int);
        void operator - (int&);
        void print();
    };
queue.cpp
Код:
#include "queue.h"
queue::queue(void)
{
    pervii_element = 0;
    tecushii_element = 0;
}
queue::~queue(void)
{
    if(pervii_element)//если список не пуст
    {
        tecushii_element=pervii_element;
    }
    while(pervii_element)//пока список не пуст
    {
        pervii_element=pervii_element->next;//взяли следующий элемент
        delete tecushii_element;//освобождение памяти.Удалили текущий
        tecushii_element=pervii_element;
    }
 
}
void queue::operator + (int a)
{
 
    Point* ph = new Point;
    ph->key=a;           //заполнение информатвного поля
    ph->next = 0;
    if (tecushii_element)
    {
        tecushii_element->next = ph;
        tecushii_element = tecushii_element->next;
    }
    else
    {
        pervii_element = ph;
        tecushii_element = ph;
    }
    cout << "Элемент добавлен";
 
}
void queue::operator - (int &a)
{
    if(pervii_element)
    {
   
    Point* ph = pervii_element;
    pervii_element = pervii_element->next;
    delete ph;
    if(pervii_element == NULL)
        tecushii_element = NULL;
    cout<<"Элемент успешно удален....";
    }
    else
    {
         cout<<"Список пуст!";  
    }
}
void queue::print()
{
    if(pervii_element)
    {
    Point* temp=pervii_element;
    cout<<"Список: ";
    while(temp)
    {
        cout << " " << temp->key;
        temp = temp->next;
    }
    cout << endl;
    }
    else
    {
        cout<<"Список пуст!";
    }
}
main.cpp
Код:
#include "queue.h"
 
int main()
{
    setlocale(LC_ALL,"Russian");
    queue w; 
    int b=0,a;
    while(true)
    {
        cout << "1) Добавить элемент в конец очереди"<<endl;
        cout << "2) Вывести на экран очередь"<<endl;
        cout << "3) Извлечь элемент из начала очереди(удалить)"<<endl;
        cout << "4) Выход"<<endl<<endl;
        cout << "Ввод: "; 
        cin >> b;
        switch(b)
        {
        case 1 : 
        
            system("cls");
            cout<<"Введите значение: ";
            cin>>a;
            w+a;
            system("cls");
            continue;
        
        case 2:
 
                system("cls");
                w.print();
                getch();
                system("cls");
                continue;
 
        case 3:
        
                system("cls");
                w-a;
                getch();
                system("cls");
                continue;
        
        case 4:
        
                 break;
        
        default: cout<<"Error!"<<endl<<endl;
                 continue;
        }
        break;
    }
    return 0;
}
winst2014 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разработка программ с чтением и записью файлов различных типов Jalgas-xan Паскаль, Turbo Pascal, PascalABC.NET 1 12.02.2013 23:41
Разработка программ с чтением и записью файлов различных типов(паскаль) Tolya92 Помощь студентам 3 13.12.2012 15:14
адресацией памяти и указатели различных типов(с) Miles Помощь студентам 1 25.12.2011 12:26
Чтение из файла различных структур и типов данных enRai Общие вопросы Delphi 0 05.02.2011 14:43