これが私のヘッダーです:
//warehouse.h
#ifndef WAREHOUSE_H
#define WAREHOUSE_H
#include<string>
#include<map>
#include "dates.h"
namespace a4
{
class warehouse
{
public:
warehouse(std::string name, std::string start_date);
private:
std::string name;
std::string busiest_day;
int most_transactions;
dates current_date;
std::map<std::string, a4::food> items;
void next_day();
};
}
#endif
私の.cc:
//warehouse.cc
#include "warehouse.h"
#include "dates.h"
namespace a4
{
//constructor
warehouse::warehouse(std::string wname, std::string start_date)
{
wname = name;
current_date = dates(start_date);
}
void warehouse::next_day()
{
current_date.next_day();
}
}
そしてコンパイラエラー:
warehouse.cc: In constructor ‘a4::warehouse::warehouse(std::string, std::string)’:
warehouse.cc:6: error: no matching function for call to ‘a4::dates::dates()’
dates.h:10: note: candidates are: a4::dates::dates(std::string)
dates.h:8: note: a4::dates::dates(const a4::dates&)
エラーからは、文字列を受け取るコンストラクターではなく、引数がゼロのコンストラクターを呼び出しているように見えます。私が作成した日付クラスには、明らかにゼロ引数コンストラクターがありません。
私は何時間もこれを理解しようとしてきましたが、助けていただければ幸いです。同様の質問で、メンバー初期化子リストを検索するように言われました。私はそれを正しく実装する方法を持っていて、本当に理解していません。なぜなら、それは問題を解決していないように見えるからです。
学期に入ってほんの数週間で、これはc ++の私の最初のクラスです、私に気楽に行ってください:)