   Problem with my Collision with c++ and SFML
Hello, I have been making a pong clone and I have run into some trouble with collision. It is not that I cannot get collision to work, it is(I think) my approach that is flawed. I have searched on google for help, however I could not find anything. collision.h    #ifndef COLLISION_H#define COLLISION_H #include <SFML\Graphics.hpp> #include "Ball.h"#include "Player.h"#include "Enemy.h" class Collision{ public:    Collision();    ~Collision();//return true if there is a collision detected    bool BOP_Collision(sf::RenderWindow& App, const Player* const player = NULL, const Enemy* const enemy = NULL); //BOP = boundries on paddle    bool BOB_Collision(sf::RenderWindow& App, const Ball* const ball); //BOB = boundries on ball    bool POB_Collision(sf::RenderWindow& App, const Player* const player = NULL, const Enemy* const enemy = NULL, const Ball* const ball = NULL); //POB = paddle on ball private:    sf::Vector2f pVector; //vector for the player    sf::Vector2f eVector; //vector for the enemy    sf::Vector2f bVector; //vector for the ball }; #endifcollision.cpp  #include "Collision.h" Collision::Collision(){} Collision::~Collision(){} bool Collision::BOP_Collision(sf::RenderWindow& App, const Player* const player = NULL, const Enemy* const enemy = NULL){pVector = player->getPosition();    eVector = enemy->getPosition();} bool Collision::BOB_Collision(sf::RenderWindow& App, const Ball* const ball){  } bool Collision::POB_Collision(sf::RenderWindow& App, const Player* const player = NULL, const Enemy* const enemy = NULL, const Ball* const ball = NULL){  } The error is with pVector = player->getPosition(). It says "Error: the object has type qualifiers that are not compatible with the member function". Thank you in advance for all your help.   
  I am guessing your getPosition method is lacking a const on the right hand side of the method signature.If I guessed right, it should be something like this:class Player{public:    Vector getPosition() const; //<- this const};;Why does it need to be constant? Also, thank you, It did work.;  Look at this signature:bool Collision::BOP_Collision(sf::RenderWindow& App, const Player* const player = NULL, const Enemy* const enemy = NULL);The player variable is of typeconst Player * constThat means the pointer and the object it points should not be changed while in this function. So if you call a read-write (not const)method on player, the compiler will tell you it's an error. That's why the method should be declared as read-only (has that const on the right side).It's a good idea to make a method const, if the method does not modify the object.   ;Thank you.