В чем ошибка?

igorko2-rpz-10

// st.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
#include <iostream>
using namespace std;
const int size=50;
  
   // Створення узагальненого класу queueClass.
template <class qType> class queueClass 
{         qType array[size];
           int sloc, rloc,response,i;
     public:
           queueClass() { sloc = rloc = 0;i=1; }
           void Get(qType c);
           void func(int response);
           void Put(int k); // Виведення з об'єкта значення
};
 
    // Занесення об'єкта в чергу.
template <class qType> void queueClass<qType>::Get(qType c)
{     if(sloc>=size) 
                   { cout << "Стек заповнений" << endl; return; }
       sloc++;
       array[sloc] = c;
}
 
    // Вилучення об'єкта з черги.
template <class qType> void queueClass<qType>::Put(int k)
{ 
    rloc=k;
 
for(int item = k-1; k>0; item--)
cout<<array[item]<<" , ";
}
 
template <class qType> void queueClass<qType>::func(int response)
{
    
switch(response) 
    {
    case 1:
        array[i]="Komp";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
    case 2:
        array[i]="Flash";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
    case 3:
        array[i]="Nout";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
    case 4:
        array[i]="Phone";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
        
//  case 5:
//      return 0;
//      //exit (1);
//      //Put();
//      cout*********";
//      break;
    }
cout<<endl;
 
}
    
 
void main()
{   
    setlocale (LC_ALL,".1251");
    int response;
    int q=1;
    queueClass<char*> ObjA;         // Створюємо дві черги для int-значень.
    {
 
    cout<<"1.Komp"<<endl
        <<"2.Flesh"<<endl
        <<"3.Nout"<<endl
        <<"4.Phone"<<endl
        <<"5.korzuna"<<endl;
    cout<<"Vvedin № tovaru: "<<endl;
    cin>>response;
    } 
    int k=1;
    while(response!=5)
    {ObjA.func(response); cin>>response;k++;}
    while(response==5)
    ObjA.Put(k);    
  system("pause");
}
при возможности помогите исправить
2 ответа

igorko2-rpz-10

так в чём собственно ошибка?


igorko2-rpz-10

так в чём собственно ошибка?
так мне самому интересно, мне почему-то программа правильно работает, выдает нужные значения а затем происходит аварийное прекращение работы программы