Im trying to cast class, but something is wrong. I was trying static_cast<>, dynamic_cast<> but still im getting errors. I need one array with 2 types of classes. 
class user
{
  int value;
  user(int valueInit) 
  {
     value = valueInit;
  };
  int getValue()
  {
     return value;
  }
};
class premium : public user
{
  int premiumValue;
  premium(int valueInt, int premiumValueInit) 
  {
      value = valueInt;
      premiumValue = premiumValueInit;
  };
};
And here is main code in main() function 
user fUser(10);
premium fPremium(20, 5);
premium *array = new premium[2];
(user)array[0] = u1;
array[1] = p1;
cout << "Value: " << array[0].getValue() << endl; //incorrect/random value
    cout << "Value: " << array[1].getValue() << endl; //correct value
Usually I use java, so I have huge problems with c++. I know what I should do but I dont know how.
 
     
    