Да, но он будет разрезан - все части Y_ объекта будут отрублены, и он станет X_. Обычно в этой ситуации вам нужно передавать по ссылке, так как обычно do () будет виртуальной функцией:
void foo(X_ & whatever) // ampersand means whatever is a reference
{
whatever.do();
}
Кстати, я не знаю, что вы думаете, эти суффиксные подчеркивания выигрывают вас, но я бы сказал "ничего".