title: What does "class ClassName;" mean when put in header file of other class definition?
body: <p>I am a bit confused about this line of code <code>class TreeItem;</code>. <code>class TreeItem;</code> is defined in other files not included in this file.
  I would must look this question up in a book, but I am sure answer for this question is very simple. </p>
  
  <pre><code>#ifndef TREEMODEL_H
  #define TREEMODEL_H
  
  #include &lt;QAbstractItemModel&gt;
  #include &lt;QModelIndex&gt;
  #include &lt;QVariant&gt;
  
  class TreeItem; //here, what does this do??
  
  //! [0]
  class TreeModel : public QAbstractItemModel
  {
     ...
  public:
     ...
  private:
     ...
  };
  //! [2]
  
  #endif // TREEMODEL_H
  </code></pre>