At one level, because the standard demands that class object have a size greater than zero.
So, next question; why does the standard demand this? There is at least one excellent reason for it; the address of two different objects must be different, so they must have a size.