title: What is a tagged type in Ada?
body: <p>Currently learning Ada and actually enjoying it, there is a something that bothers me: what's a <code>tagged</code> type? According to Programming in Ada 2012 by John Barnes, it indicates that the instantiated object carries a tag at run time.</p>
  <p>I never heard of anything like this in C++ or C I think, so I'm a bit lost. What is it? When do I need it (apparently for having methods and inheritance?)?</p>