Function C++

#include 
#include 
#include 
#include 
using namespace std;
class Numbers {
  int val;
public:
  Numbers() { 
     val = 0; 
  }
  Numbers(int x) { 
     val = x; 
  }
  bool showval() { 
     cout << val << " "; 
     return true; 
  }
  bool isPrime() {
    for(int i = 2; i <= (val/2); i++)
      if(!(val%i)) 
         return false;
    return true;
  }
  bool isEven() { 
     return (bool) !(val % 2); 
  }
  bool isOdd() { 
     return (bool) (val %2); 
  }  
};
int main()
{
  vector vectorObject(10);
  vector::iterator end_p;
  int i;
  for(i = 0; i <10; i++)
    vectorObject[ i ] = Numbers(i+1);
  cout << "Sequence contains: ";
  for_each(vectorObject.begin(), vectorObject.end(), mem_fun_ref(&Numbers::showval));
  cout << endl;
  // remove the primes
  end_p = remove_if(vectorObject.begin(), vectorObject.end(), mem_fun_ref(&Numbers::isPrime));  
  cout << "Sequence after removing primes: ";
  for_each(vectorObject.begin(),  end_p, mem_fun_ref(&Numbers::showval));
  cout << endl;
  for(i = 0; i <10; i++)
    vectorObject[ i ] = Numbers(i + 1);
  
  end_p = remove_if(vectorObject.begin(), vectorObject.end(), mem_fun_ref(&Numbers::isEven));
  cout << "Sequence after removing even values: ";
  for_each(vectorObject.begin(), end_p, mem_fun_ref(&Numbers::showval));
  cout << endl;
  for(i = 0; i < 10; i++)
    vectorObject[ i ] = Numbers(i + 1);
  end_p = remove_if(vectorObject.begin(), vectorObject.end(), mem_fun_ref(&Numbers::isOdd)); 
  cout << "Sequence after removing odd values: ";
  for_each(vectorObject.begin(), end_p, mem_fun_ref(&Numbers::showval));
  return 0;
}