title: Correct way to initialize boost::shared_ptr
body: <p>I am just getting started to work with <code>boost::shared_ptr</code> so I have searched around and I see that there are several ways of initializing it:</p>
  
  <pre><code>boost::shared_ptr&lt;MyClass&gt; myclass = boost::shared_ptr&lt;MyClass&gt;(new MyClass());
  boost::shared_ptr&lt;MyClass&gt; myclass = new MyClass();
  boost::shared_ptr&lt;MyClass&gt; myclass = boost::make_shared&lt;MyClass&gt;();
  </code></pre>
  
  <p>And of assigning it:</p>
  
  <pre><code>boost::shared_ptr&lt;MyClass&gt; someOtherType::getMyClass();
  
  boost::shared_ptr&lt;MyClass&gt; myclass = someOtherTypePointer-&gt;getMyClass();
  boost::shared_ptr&lt;MyClass&gt; myclass = boost::make_shared&lt;MyClass&gt;(someOtherTypePointer-&gt;getMyClass());
  </code></pre>
  
  <p>Which one would be the preferred way for the init/assign and why?</p>
  
  <p>Thank you.</p>