Új hozzászólás Aktív témák

  • papa019

    senior tag

    Sziasztok!
    Valaki segítsen nekem legyen szíves.
    Megírtam egy fifo osztályt, de valami probléma van, mert a program nem fut le normálisan, annak ellenére, hogy minden hiba nélkül lefordul.

    fifo.h
    #ifndef fifo_h
    #define fifo_h

    class FiFo{
    int elementNum;
    double*pData;
    public:
    FiFo();
    FiFo(const FiFo&theOther);
    ~FiFo();
    double get();
    bool put(double element);
    bool empty();
    };

    #endif

    fifo.cpp
    #include "fifo.h"
    #include<stdio.h>

    FiFo::FiFo()
    {
    elementNum=0;
    pData=0;
    }

    FiFo::FiFo(const FiFo&theOther)
    {
    if(theOther.elementNum==0)
    {
    elementNum=0;
    pData=0;
    }
    else
    {
    elementNum=theOther.elementNum;
    pData=new double[elementNum];
    for(int i=0;i<elementNum;i++)
    {
    pData[i]=theOther.pData[i];
    }
    }
    }

    FiFo::~FiFo()
    {
    delete[]pData;
    }

    double FiFo::get()
    {
    if(elementNum==1)
    {
    double element=pData[0];
    delete[]pData;
    elementNum=0;
    return element;
    }
    elementNum--;
    double element=pData[0];
    double*pTemp=new double[elementNum];
    for(int i=0;i<elementNum;i++)
    {
    pTemp[i]=pData[i+1];
    }
    delete[]pData;
    pData=pTemp;
    return element;
    }

    bool FiFo::put(double element)
    {
    double*pTemp=new double[elementNum+1];
    elementNum++;
    for(int i=0;i<elementNum-1;i++)
    {
    pTemp[i]=pData[i];
    }
    pTemp[elementNum-1]=element;
    delete[]pData;
    pData=pTemp;
    return true;
    }

    bool FiFo::empty()
    {
    elementNum=0;
    pData=0;
    return true;
    }

    Mi lehet a baj?
    Előre is kösz.
    Üdv.: Papa019

Új hozzászólás Aktív témák