Tworząc obiekt unii, rezerwujesz pamięć wielkości największego elementu unii (np. jeśli unia ma składowe int i np. jakiś obiekt twojej klasy ważący 20 B, to cały obiekt unii też zajmuje 20 B miejsca). Dlatego też korzystając z unii możesz korzystać z tylko jednej jej składowej (zapisując do jednej składowej, modyfikujesz tez przynajmniej jedną inną składową).
Elementy struktury są pakowane w pamięci obok siebie, jak w tablicy. Także wiadomo - ze składowych możesz korzystać dowolnie.
Dodatkowo z unii nie można dziedziczyć, więc nie może ona mieć pól protected.
A najlepiej po prostu przeczytaj chociażby to:
http://cpp0x.pl/kursy/Kurs-C++/Unia-w-C++/314