Ответ 1
Вы правы, объект нарезается. Это общая проблема. Вы не должны этого делать!
Можно ли сделать следующее или это поведение undefined:
class Base
{
private:
int a;
};
class Derived : public Base
{
private:
int b;
};
Base x;
Derived y;
x = y; // safe?
Убирают ли лишние биты в производных классах?
Вы правы, объект нарезается. Это общая проблема. Вы не должны этого делать!
Да, происходит нарезка. Это не поведение undefined.
Вы можете найти эту запись в С++ - часто задаваемые вопросы:
http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.8