Constructor injection
<p>I know the code is missing (Someone will give negative numbers). But I only want to know how do you solve constructor injection  in this situation?</p>

<pre><code>class PresenterFactory
{
public:
  template&lt;class TModel&gt;
    AbstractPresenter&lt;TModel&gt;*
    GetFor(AbstractView&lt;TModel&gt; * view)
    {
      return new PresenterA(view, new FakeNavigator());
    }
};

class ViewA : public AbstractView&lt;ModelA&gt;
{
  static PresenterFactory factory;
public:
  ViewA(AbstractPresenter&lt;ModelA&gt; *presenter = factory.GetFor&lt;ModelA&gt;(this)) :
    AbstractView&lt;ModelA&gt; (presenter)
  {
  }

  // this one is also not working
  // invalid use of ‘class ViewA’
  //  ViewA()
  //  {
  //    this-&gt;ViewA(factory.GetFor&lt;ModelA&gt; (this));
  //  }
};
</code></pre>
