Size of an empty class is not zero. It is 1 byte generally. It is nonzero to ensure that the two different objects will have different addresses.
Check more examples at : http://www.geeksforgeeks.org/why-is-the-size-of-an-empty-class-not-zero-in-c/
btw it is structure.