2016-04-23 15 views
1

取得していますカAppleFarmer :: AppleFarmer 'は無効な使用:。AppleFarmer::AppleFarmerの不正使用私は私がに任意の入力を渡そうとしておりませんので、このエラーを取得しています理由は分からないが私は3つの異なるファイルを持っていますが、私が行っているようにコードを一緒にリンクすることに問題があるかもしれません。 .cppファイル用#include。私は私のコードは、このエラーは別に動作するかどうかわからないが、私はこのエラーにこだわっています。C++エラー:「エラー時に私は、エラーを

#include<iostream> 
#include "appleFarmer.cpp" 
int main(){ 
    AppleFarmer m; 
    int harvest; 
    int demand; 
    m.AppleFarmer(); 

    while(m.endOfMonth()==false){ 
     cout<<"Enter a harvest amount:"<<endl; 
     cin>>harvest; 
     m.harvestApples(harvest); 
     cout<<"Enter a demand:"<<endl; 
     cin>>demand; 
     m.sellApples(demand); 
     cout<<"Apple Inventory: "<<m.getInventory()<<endl; 
     m.updateCurrentDay(); 
    } 
    return 0; 
} 
appleFarmerMain.cpp

appleFarmer.cpp

#include "appleFarmer.h" 
#include "<iostream> 
using namespace std; 

AppleFarmer::AppleFarmer(){ 
    for(int i=0;i<30;i++){ 
     sales[i]=0; 
     harvest[i]=0; 
    } 
} 
bool AppleFarmer::sellApples(int demand){ 
    if(demand<= inventory){ 
     sales[currentDay]=demand; 
     inventory=inventory-demand; 
    } 
    else{ 
     sales[currentDay]=0; 
    } 

} 

void AppleFarmer::harvestApples(int dayHarvest){ 
    harvest[currentDay]= dayHarvest; 
    inventory=inventory+dayHarvest; 
} 
bool AppleFarmer::endOfMonth(){ 
    if (currentDay=maxDays){ 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 
int AppleFarmer::updateCurrentDay(){ 
    currentDay=currentDay+1; 
} 
int AppleFarmer::getInventory(){ 
    return inventory; 
} 
double AppleFarmer::calculateAverageHarvest(){ 

} 
double calculateAverageSales(){ 

} 
void AppleFarmer::printSales(){ 

} 
void AppleFarmer::printHarvest(){ 

} 

appleFarmer.h

#ifndef APPLEFARMER_H 
#define APPLEFARMER_H 

class AppleFarmer 
{ 

    public: 
     AppleFarmer(); 
     bool sellApples(int); 
     void harvestApples(int); 
     bool endOfMonth(); 
     int updateCurrentDay(); 
     int getInventory(); 
     double calculateAverageHarvest(); 
     double calculateAverageSales(); 
     void printSales(); 
     void printHarvest(); 
    private: 
     int sales[30]; 
     int harvest[30]; 
     int maxDays = 30; 
     int currentDay = 0; 
     int inventory = 0; 
}; 

#endif 
+0

AppleFarmerクラスでインスタンスmを定義しようとするとコメントが発生します。 AppleFarmerMain.cpp –

答えて

1

ながら(.H拡張子を持つ)ヘッダファイルに宣言が含まれているため、あなたがappleFarmer.h代わりにappleFarmer.cppを含める必要があります。 cppファイルには実装が含まれています。

次にあなたがm.AppleFarmer()を削除することも必要です。コンストラクタは宣言中に呼び出されるため(AppleFarmer mテキスト行)

5

は、C++では、あなたは、オブジェクトのコンストラクタを呼び出すことはありません。それはオブジェクト作成時に発生します。行

m.AppleFarmer(); 

は必要ありません。コンストラクタはここで暗黙的に呼び出されます。

AppleFarmer m;