title: Cannot convert parameter 1 from std::shared_ptr <_Ty> (??)
body: <p>While finishing up my game prototype i came across this error, i've never seen it before. 
  I was trying to link together two .cpp files, this:</p>
  
  <pre><code>    #include &lt;iostream&gt;
      #include "mage.h"
      #include "Warrior.h"
      #include "Rogue.h"
      #include "CharacterType.h"
      #include &lt;memory&gt;
      #include &lt;string&gt;
      #include "Inventory.h"
      #include "blankEnemy.h"
      #include "Enemy.h"
      #include "Boss.h"
      #include &lt;cstdlib&gt;
      #include &lt;ctime&gt;
      #include "DeathMenu.h"
      #include "GameStart.h"
      #include "FirstPhase.h"
      #include &lt;Windows.h&gt;
      #include "SecondPhase.h"
      #include "PhaseOnePT2.h"
      using namespace std;
  
      int FirstPhase(blankCharacter* myCharacter, blankEnemy* myEnemy, Inventory* myInventory,       blankEnemy* myBoss)
      {
       //code
      }
  </code></pre>
  
  <p>To this:
          int GameStart()
      {</p>
  
  <pre><code>    std::shared_ptr&lt;blankCharacter&gt; myCharacter; 
      std::unique_ptr&lt;blankEnemy&gt; myEnemy;
      std::unique_ptr&lt;Inventory&gt; myInventory;
      std::unique_ptr&lt;blankEnemy&gt; myBoss;
  
  
  
  
      string name;
      int choice;
  
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
      cout &lt;&lt; "Your journey has only just begun" &lt;&lt; endl;
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
  
      cout &lt;&lt; " Please enter player name." &lt;&lt; endl &lt;&lt; endl;
      cin &gt;&gt; name;        
      system("cls");
  
  
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
      cout &lt;&lt; "Please select fighting class." &lt;&lt; endl &lt;&lt; endl;
      cout &lt;&lt;" 1 - Mage, although not the physically strongest, mages offer a healing role" &lt;&lt; endl;
      cout &lt;&lt;" 2 - Warrior, the most balanced of all the classes, excelling in durability." &lt;&lt; endl;
      cout &lt;&lt;" 3 - Rogue, for players who want to take a more creative approach to battle." &lt;&lt; endl;
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
      cout &lt;&lt; "______________________________________________________________________________" &lt;&lt; endl;
      cin &gt;&gt; choice;
  
  
  
  
      switch(choice)
      {
          case 1: //Mage
              Beep(262,500);
              myCharacter = std::unique_ptr&lt;blankCharacter&gt;(new Mage(20,40,60,70,100,180,60));
              myInventory = std::unique_ptr&lt;Inventory&gt;(new Inventory(3, 3,3));
              myEnemy = std::unique_ptr&lt;blankEnemy&gt;(new Enemy(150, 60, 150));
              myBoss = std::unique_ptr&lt;blankEnemy&gt;(new Enemy(200, 200, 200));
              //choice = FirstPhase();
          case 2: //Warrior
              Beep(262,500);
              myCharacter = std::unique_ptr&lt;blankCharacter&gt;(new Warrior(40,50,65,100,160,100,60));
              myInventory = std::unique_ptr&lt;Inventory&gt;(new Inventory(3, 3, 3));
              myEnemy = std::unique_ptr&lt;blankEnemy&gt;(new Enemy(150, 60, 150));
              myBoss = std::unique_ptr&lt;blankEnemy&gt;(new Enemy(200, 200, 200));
              choice = FirstPhase(myCharacter, myEnemy, myInventory, myBoss);
          break;
  
          case 3: //Rogue
              Beep(262,500);
              myCharacter = std::unique_ptr&lt;blankCharacter&gt;(new Rogue(30,55,70,90,160,100,100));
              myInventory = std::unique_ptr&lt;Inventory&gt;(new Inventory(3, 3, 3));
              myEnemy = std::unique_ptr&lt;blankEnemy&gt;(new Enemy(150,60,150));   
              myBoss = std::unique_ptr&lt;blankEnemy&gt;(new Enemy(200, 200, 200));
          //  choice = FirstPhase(myCharacter, myEnemy, myInventory, myBoss);
          break;
  
          default: 
          cout &lt;&lt; "Please select a relevant value 1 to 3" &lt;&lt; endl &lt;&lt; endl;
          break;
      }
      return 0;
  
      };
  </code></pre>
  
  <p>I have referenced Firstphase(); in a header and put it in GameStart(); </p>
  
  <p>FirstPhase.h:</p>
  
  <pre><code>    #include "GameStart.h"
      #include &lt;string&gt;
      #include "CharacterType.h"
      #include "mage.h"
      #include "Rogue.h"
      #include "Warrior.h"
      using namespace std;
      int FirstPhase(blankCharacter* myCharacter, blankEnemy* myEnemy, Inventory* myInventory, blankEnemy* myBoss);
  </code></pre>
  
  <p>However i keep getting this error:</p>
  
  <p>error C2664: 'FirstPhase' : cannot convert parameter 1 from 'std::shared_ptr&lt;_Ty>' to 'blankCharacter *'
  Around </p>
  
  <pre><code>  choice = FirstPhase(myCharacter, myEnemy, myInventory, myBoss);
  </code></pre>
  
  <p>There's ,no suitable conversion from shared_ptr&lt;_Ty> to *blankCharacter exists'?
  I don't know how to solve it. </p>