You really only need to push/pop matrices if you're going to be applying any transformations. As it is, your cube drawing is void of any transformations, so the pushing/popping will just slow you down. If, however, it looked something like this:
void DrawCube(){ glPushMatrix(); glTranslatef(m_fX, m_fY, m_fZ); glRotate(/*etc*/); glBegin(GL_QUADS); // blah blah make my cube glEnd(); glPopMatrix()}
Then that'd be the correct usage of pushing and popping. Just make sure that your pushes and pops match up, both in number
and in which matrix is getting push/popped -- projection or modelview. You'll get strange errors that can be tricky to track down if you push while in modelview, do some things, then pop while in projection.