i am using the sdl libary to create an air hockey game, and i wish to check when the paddle is out of bounds. the paddle is its own class, when the code is tested so when it goes it goes out of bounds. it should move several pixel's back into the screen, however this does not happen.

can anyone help?

this is the code for the paddle class
Code:
// Paddle.cpp: implementation of the CPaddle class.
//
//////////////////////////////////////////////////////////////////////

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include "Paddle.h"

using namespace std;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CPaddle::CPaddle()
{
	//set paddle location
	m_locx = 150;
	m_locy = 770;
	//set paddle velocity
	m_velx = 0;
	m_vely = 0;
}

CPaddle::~CPaddle()
{

}
//draw the images
void CPaddle::drawImage(SDL_Surface *p_buffer)
{
	SDL_Rect tempRect;
	
	tempRect.x = m_locx;
	tempRect.y = m_locy;
	
	//set transparency colour as pink. shown by RGB values
	SDL_SetColorKey(m_image, SDL_SRCCOLORKEY,SDL_MapRGB(m_image->format, 255, 0, 255));
	
	SDL_BlitSurface(m_image, NULL, p_buffer, &tempRect);
}
void CPaddle::update()
{
	// update location due to velocity
	m_locx += m_velx;
	m_locy += m_vely;
	// space for more update code

	if (m_locx == 0)
		m_locx = 10;
	else if (m_locx + 100 == 400)
		m_locx = 350;
}
void CPaddle::outofbounds()
{
	

}
this is the game loop
Code:
while (gameloop == true)
	{

		checkInput();
		drawBackdrop();
		player.update();
		player.drawImage(buffer);
		computer.drawImage(buffer);
		AIpuck.drawImage(buffer);
		SDL_Flip(buffer);
		
		player.outofbounds();
		
	}
player is the paddle class object

the out of bounds code has been moved to the update function from the out of bounds function