我有一个程序应该取值并将其(推)放在顶部框中。
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中丢失|
有人可以告诉我我做错了什么吗?