class X {
	private:
		int x;
	public:
		void f1();
};

class Y : public X {
	private:
		int y;
	public:
		void f2();
};

// which of the assigments are legal

int main () {
	X x1, x2;
	Y y1, y2;
	x1 = y1;
	y2 = x2;

	X *xp = new X();
	Y *yp = new Y();
	xp = yp;
	yp = xp;

	X &xref = y1;
	Y &yref = x1;
}