Structures and Classes: How are structures different ? No inheritance. No type casting to check at runtime. No reference counting. No multiple references. No deinitializers. Structures are value types. When you assign instance of a struct to another variable, the entire structure is COPIED and not REFERENCED. Classes instead are REFERENCE types, pointing to the same instance. === operator is to know if two variables / constants refer to the same instance. == means they are equal in some value. It is your responsibility to implement == and != in your class.