rendered paste body#### Car.cpp ###Car::Car(){ init();}void Car::init(){ setupTireDL();}void Car::draw(float h, float w, float d){ glPushMatrix(); glPushAttrib(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 0.0); glScaled(h, w, d); drawTires(); glTranslated(0.0, 0.0, h/2.0); glColor3f(1.0, 0.0, 0.0); glPushMatrix(); glScaled(1.0, 0.5, 0.5); glutSolidCube(1.0); glPopMatrix(); glPopAttrib(); glPopMatrix();}void Car::drawTires(){ glPushMatrix(); glTranslated(-0.5, 0.0, 0.25); glCallList(tireDL); glTranslated(0.0, 0.0, -0.5); glCallList(tireDL); glTranslated(1.0, 0.0, 0.0); glCallList(tireDL); glTranslated(0.0, 0.0, 0.5); glCallList(tireDL); glPopMatrix();}void Car::setupTireDL(){ tireDL = glGenLists(1); glNewList(tireDL, GL_COMPILE); glutSolidCube(0.25); glEndList();}### Test.cpp ### DONT WORKCar car;void display(){ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); car.draw(3.6, 2.4, 2.4); glFlush(); glutSwapBuffers();}void init(){ ...}int main(int argc, char **argv){ ... glutDisplayFunc(display); init(); glutMainLoop(); return 0;}### Test.cpp ### WORKSCar* car;void display(){ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); car->draw(3.6, 2.4, 2.4); glFlush(); glutSwapBuffers();}void init(){ ... car = new Car();}int main(int argc, char **argv){ ... glutDisplayFunc(display); init(); glutMainLoop(); return 0;}