title: Why do we need a `class` in C++, when a `struct` can be used to achieve the same?
body: <p>Using a <code>struct</code> we can achieve all the functionality of a <code>class</code>: constructors (that can be modified/overloaded), destructors (that can be modified/overloaded), operator overloading, instance methods, static methods, <code>public</code>/<code>private</code>/<code>protected</code> fields/methods.</p>
  
  <p>Why do we need <code>class</code> then?</p>
  
  <p>Note: I don't want the answer saying that in <code>struct</code>, fields/methods are <code>public</code> by default.</p>