Yes, in reality . . . everyone is "crew", . . . but . .
Officers - usually the marine dept with stripes on their uniform. Think of the structure/classes like the military - the more stripes, the more responsibility, privileges, pay, etc. The hotel dept has 'officers' and 'stripes' also, but generally when you say 'officer', you'll mean the marine dept. I usually think 2 1/2 to 3 stripes and above.
Staff are the hotel division - guest services, cruise division/entertainment, shops, spa, casino - 1 to 3 stripes (yes, overlapping 'officers')
Crew are those without stripes - housekeeping, food & beverage, bosuns, repairmen and utility workers.
There are usually separate dining/social areas for these three groups. Officers and staff have the 'privilege' of being able to be in passenger areas (though, once you've been onboard long enough, you REALLY don't want to hang out there during your personal time, trust me)