将值放在堆栈顶部

时间:2014-02-28 20:18:54

标签: c++ memory-leaks stack

我有一个程序应该取值并将其(推)放在顶部框中。

StackOfBoxes.cpp

StackOfBoxes::StackOfBoxes()
{
    m_top=nullptr;
    m_size=0;
}

bool StackOfBoxes::isEmpty() const
{
    if (m_size==0)
    {
        return true;
    }
    return false;
}

int StackOfBoxes::size() const
{
    return m_size;
}

void StackOfBoxes::push(int value)
{
    Box* Box1 = new Box;
    Box1 -> m_previous = m_top;
    m_top=Box1;
    ++m_size;
}

StackOfBoxes.h

class StackOfBoxes
{
private:
    Box* m_top;
    int m_size;

public:
    StackOfBoxes();
    bool isEmpty() const;
    int size() const;
    void push(int value);
    int pop();
};

Box.h

class Box
{
    public:
        Box ();
        int m_value;
        Box* m_previous;
};

Box.cpp

Box::Box()
{
    m_value=0;
    m_previous=nullptr;
}

这就是推送类应该做的事情:

>void push(int value)
>
>>Puts the value in a box
>
>>Puts that box on the top of the stack
>
>>Increase m_size by 1

但我不认为这是有效的,因为我有内存泄漏。

  

Leak_DefinitelyLost | ==== | 160(16个直接,144个间接)1个块中的字节肯定会在2的丢失记录2中丢失|

有人可以告诉我我做错了什么吗?

0 个答案:

没有答案