You need to think in terms of the function being called, not in terms of how to call the function. The function being called could be overloaded:
void Class::SetColor(Color newColor)
{
}
void Class::SetColor(int newColorNum)
{
}
Then, you can call instance.SetColor(White); or instance.SetColor(4);.