对于我的作业,我必须使用C ++编写一个类游戏,该类具有名称,大小和更新列表,其中包含更新日期以及有关该更新的一些信息。 (例如:22.05.2018已在任务3中修复错误)。这是我尝试过的方法,但是不起作用。 Game.h:
class Game{
public:
struct update{
string date;
string info;
};
string name;
double size;
list<update>l;
Game(string name, double size, list<update>l);
virtual ~Game();
};
并在Game.cpp中:
Game::Game(string name, double size, list<update>l){
this->name=name;
this->size=size;
this->l=l;
}
在int main中,我创建了一个列表:
int main()
{
list<update>mylist;
update u1,u2,u3;
u1.date="20.05.2018";
u1.info="Mission 3 bug fixed";
u2.date="25.05.2018";
u2.info="New quest";
mylist.push_back(u1);
mylist.push_back(u2);
Game g("Gta5",60.0,mylist);
return 0;
}
我收到此错误:
no matching function for call to 'Game::Game(const char [4], double, std::__cxx11::list<update>&)'|
最佳答案
或者,如果您想保留嵌套类update
:
#include <string>
#include <list>
using std::string;
using std::list;
class Game{
public:
struct update{
string date;
string info;
};
string name;
double size;
list<update>l;
Game(string name, double size, list<update>l);
virtual ~Game() {}
};
Game::Game(string name, double size, list<update>l){
this->name=name;
this->size=size;
this->l=l;
}
int main()
{
list<Game::update> mylist; // use Game::update to access nested class
Game::update u1,u2,u3;
u1.date="20.05.2018";
u1.info="Mission 3 bug fixed";
u2.date="25.05.2018";
u2.info="New quest";
mylist.push_back(u1);
mylist.push_back(u2);
Game g("Gta5",60.0,mylist);
return 0;
}