2016-04-04 18 views
0

私はこのエラーが発生しており、解決策を試すには良い4-6時間を探しましたが、私の検索では何の結果も得られませんでしたので、ここで私のmain.cppです。C++エラー: 'input >> Group1-> Entrepreneur :: Item'の 'operator >>'に一致しません。

#include <iostream> 
#include <string> 
#include "Entrepreneur.h" 
#include <fstream> 

using namespace std; 

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

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

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

    input >> Group1.Item >> Group1.Donation >> Group1.Nr >> Group1.StartUpAmt; 
    return input; 
}; 

int main() 
{ 


    return 0; 
}; 

ここは私のヘッダーファイルです。私が持っている

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

    input >> Group1.Item >> Group1.Donation >> Group1.Nr >> Group1.StartUpAmt; 
    return input; 
}; 

#ifndef ENTREPRENEUR_H_INCLUDED 
#define ENTREPRENEUR_H_INCLUDED 
#include <iostream> 
#include <string> 

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 << "\nItem : " << Item << "\nNr : " << Nr << "\nDonation : R" << Donation << "\nStart up amount : R" << StartUpAmt << "\nExpenses : R" << Expenses << "\nIncome : R" << Income << "\nProfit : R" << Profit << "\nPoints : " << Points << "\nSold : " << Sold << 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 < 3) 
      { 
       Points ++; 
      } 
      else 
      { 
       Points + 2; 
      } 
      if(Donation == 0) 
      { 
       Points ++; 
      } 
      if(Sold == 1) 
      { 
       Points ++; 
      } 
     }; 
     void Display(){ 
      cout << "Congratulations to all groups that partook in the challenge !" << endl; 
     }; 

     friend bool operator >(const Entrepreneur & Group1,const Entrepreneur & Group2); 
     friend ostream &operator<<(ostream &output,const Entrepreneur & Group1); 
     friend istream &operator>>(istream &input,const Entrepreneur & Group1); 


}; 

#endif // ENTREPRENEUR_H_INCLUDED 

だからエラーがmain.cppにはEntrepreneur.h

friend istream &operator>>(istream &input,const Entrepreneur & Group1); 

で起業家のクラスでは>> 演算子をオーバーロード友人のメンバーから来ていますここで通常はGoogleに10分かけて壁に当たってください。私はそれを修正したでしょうが、これは私より優れています。私がテストを開始したときに、このプログラムは終了していません。 ありがとうございます。

答えて

2

あなたの

input >> Group1.Item >> Group1.Donation >> Group1.Nr >> Group1.StartUpAmt; 

がコンパイルできない理由ですconstオブジェクト

istream &operator>>(istream &input, const Entrepreneur & Group1) 

に読み込むしようとしています。パラメータ宣言でconstを取り除く。

無関係な問題

Points + 2; 

これはノーオペレーション文です。

+0

ありがとう、私はconstを削除しようとしましたが、クラスのEntrepreneurのItem変数がprivateであるため、エラーになります。そして、2番目の点に感謝 – Divinator

+0

ありがとう、私はちょうどヘッダーファイルの友人の機能からcontを削除することを忘れてしまった大変ありがとう – Divinator

関連する問題