类的定义不会分配存储区域和面试题中的一个空类的大小为1有矛盾吗

最近看C++primer:类的定义不会引起存储区的分配。只有当定义一个对象时,系统才会分配存储区。那也就是说没有空间;
但是记得有个面试题说一个空类的大小为1,其中原理不是太懂

类总要占用空间,所以空类会用一个字节。前面的描述是站在实例的角度来说。也就是只有实例化的时候才会占用空间。你可以理解都是正确的说法。只是不同场合下。

不矛盾;当定义一个空类的时候,实际上只占用一个占位符,sizeof运算等于1