class Base { public: Base(int x) : x(x) { } int x; }; class Der1 : public Base { public: Der1(int y) : Base(16), y(y) { } int y; }; int main(int argc, char** argv) { Base b(1); Der1 d(2); b = d; // what happens to y? // d = b; // compiler error }