title: Making sense of non-primitive data types
body: <p>Understanding how primitive data types works is easy: Everything in a computer is stored as a series of 0s and 1s, and so everything I need to store needs to be encoded as a series of 0s and 1s. For example: the real number <code>3.14</code> must be stored as a bit pattern, the negative number <code>-1234</code> must be stored as a bit pattern, the character <code>'A'</code> must be stored as a bit pattern, etc. When I store one of these data in memory, I have to mark the memory location of where they're stored with a specific data type (e.g. <code>float</code> for a bit pattern that represents a real number), this data type tells me how to interpret this bit pattern when I ask for it later.</p>
  
  <p>But how this definition applies to something like a class, I mean when I create an object of a specific class, for example:</p>
  
  <pre><code>MyClass mc;
  </code></pre>
  
  <p><code>mc</code> does not store a bit pattern that needs to be interpreted in a specific way, how to make sense of considering a class to be a data type? Or is there's another definition for a data type?</p>