title: Do I have to typedef on every Header file?
body: <p>Let's say I have an <code>std::vector</code> of <code>std::string</code>s.</p>
  
  <pre><code>// Foo.h
  class Foo {
      std::vector&lt; std::string &gt; mVectorOfFiles;
  }
  </code></pre>
  
  <p>Then I used <code>typedef</code> to make it a <code>StringVector</code> type.</p>
  
  <pre><code>// Foo.h
  typedef std::vector&lt; std::string &gt; StringVector;
  
  class Foo {
      StringVector mVectorOfFiles;
  }
  </code></pre>
  
  <p>If I have another class which takes a <code>StringVector</code> object...</p>
  
  <pre><code>// Bar.h
  class Bar {
      Bar( const StringVector &amp; pVectorOfFiles ); // I assume this produces a compile error (?) since Bar has no idea what a StringVector is
  }
  </code></pre>
  
  <p>... do I have to use <code>typedef</code> again in the header file for <code>Bar</code>?</p>
  
  <pre><code>// Bar.h
  typedef std::string&lt; std::vector &gt; StringVector;
  class Bar {
      Bar( StringVector pListOfFiles );
  }
  </code></pre>
  
  <p>Is it possible to place the <code>typedef std::vector&lt; std::string &gt; StringVector</code> in a single file and have every other class know of the type <code>StringVector</code>?</p>