C++ error: no match for 'operator>>' in 'input >> Group1->Entrepreneur::Item'|
<p>I'm getting this error and have searched for a good 4-6 hour to try and get a solution but none of my searches yielded any results in my particular situation so here is my main.cpp.</p>

<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include "Entrepreneur.h"
#include &lt;fstream&gt;

using namespace std;

bool operator &gt;(const Entrepreneur &amp; Group1,const Entrepreneur &amp; Group2)
{
    if((Group1.Points &gt; Group2.Points || Group1.Points == Group2.Points) &amp;&amp; Group1.Profit &gt; Group2.Profit )
    {
        return true;
    }
    else
    {
        return false;
    };
};

ostream &amp;operator&lt;&lt;( ostream &amp;output,const Entrepreneur &amp;Group1)
{
 output &lt;&lt;"\nItem : " &lt;&lt; Group1.Item &lt;&lt; "\nNr : " &lt;&lt; Group1.Nr &lt;&lt; "\nDonation : R" &lt;&lt; Group1.Donation &lt;&lt; "\nStart up amount : R" &lt;&lt; Group1.StartUpAmt &lt;&lt; "\nExpenses : R" &lt;&lt; Group1.Expenses &lt;&lt;"\nPoints : " &lt;&lt; Group1.Points &lt;&lt; "\nSold : " &lt;&lt; Group1.Sold &lt;&lt; endl;;
 return output;
};

    istream &amp;operator&gt;&gt;( istream  &amp;input,const Entrepreneur &amp; Group1)
{
    cout &lt;&lt; "Enter Items to be sold,Donation amount,number of members &amp; startup amount. Seperated by a space." &lt;&lt; endl;

    input &gt;&gt; Group1.Item &gt;&gt; Group1.Donation &gt;&gt; Group1.Nr &gt;&gt; Group1.StartUpAmt;
    return input;
};

int main()
{


    return 0;
};
</code></pre>

<p>and here is my header file.</p>

<pre><code>#ifndef ENTREPRENEUR_H_INCLUDED
#define ENTREPRENEUR_H_INCLUDED
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class Entrepreneur{
    private:
        string Item;
        int Nr;
        double Donation;
        double StartUpAmt;
        double Expenses;
        double Income;
        double Profit;
        int Points;
        bool Sold;
    public:
        Entrepreneur(){
            Item = "Not Decided";
            Nr = 1;
            Donation = 0;
            StartUpAmt = 0;
            Expenses = 0;
            Income = 0;
            Profit = 0;
            Points = 0;
            Sold = 0;
        };
        void CreatGroup(string iItem,int iNr,double iDonation,double iStartUpAmt){
            Item = iItem;
            Nr = iNr;
            Donation = iDonation;
            StartUpAmt = iStartUpAmt;
        };
        void DisplayGroup(){
            cout &lt;&lt; "\nItem : " &lt;&lt; Item &lt;&lt; "\nNr : " &lt;&lt; Nr &lt;&lt; "\nDonation : R" &lt;&lt; Donation &lt;&lt; "\nStart up amount : R" &lt;&lt; StartUpAmt &lt;&lt; "\nExpenses : R" &lt;&lt; Expenses &lt;&lt; "\nIncome : R" &lt;&lt; Income &lt;&lt; "\nProfit : R" &lt;&lt; Profit &lt;&lt; "\nPoints : " &lt;&lt; Points &lt;&lt; "\nSold : " &lt;&lt; Sold &lt;&lt; endl;
        };
        void set_info(double iExpenses,double iIncome,bool iSold){
            Expenses = iExpenses;
            Income = iIncome;
            Sold = iSold;
        };
        void calc_profit(double iDonation,double iStartUpAmt,double iExpenses,double iIncome){
            Donation = iDonation;
            StartUpAmt = iStartUpAmt;
            Expenses = iExpenses;
            Income = iIncome;

            Profit = Income + (StartUpAmt + Donation) - Expenses;
        };
        void update_points(){
            Points = 0;

            if(Nr &lt; 3)
            {
                Points ++;
            }
            else
            {
                Points + 2;
            }
            if(Donation == 0)
            {
                Points ++;
            }
            if(Sold == 1)
            {
                Points ++;
            }
        };
        void Display(){
            cout &lt;&lt; "Congratulations to all groups that partook in the challenge !" &lt;&lt; endl;
        };

        friend bool operator &gt;(const Entrepreneur &amp; Group1,const Entrepreneur &amp; Group2);
        friend ostream &amp;operator&lt;&lt;( ostream &amp;output,const Entrepreneur &amp; Group1);
        friend istream &amp;operator&gt;&gt;( istream  &amp;input,const Entrepreneur &amp; Group1);


};

#endif // ENTREPRENEUR_H_INCLUDED
</code></pre>

<p>So the error comes from the friend member that overloads the operator>> 
In Entrepreneur class in Entrepreneur.h</p>

<pre><code>friend istream &amp;operator&gt;&gt;( istream  &amp;input,const Entrepreneur &amp; Group1);
</code></pre>

<p>In main.cpp:</p>

<pre><code>istream &amp;operator&gt;&gt;( istream  &amp;input,const Entrepreneur &amp; Group1)
{
    cout &lt;&lt; "Enter Items to be sold,Donation amount,number of members &amp; startup amount. Seperated by a space." &lt;&lt; endl;

    input &gt;&gt; Group1.Item &gt;&gt; Group1.Donation &gt;&gt; Group1.Nr &gt;&gt; Group1.StartUpAmt;
    return input;
};
</code></pre>

<p>I have hit a wall here normally 10min on google and I would have fixed it but this one has got the better of me. PS the program is not finished found this when i started testing.
Thanks in advance.</p>