【发布时间】:2018-11-13 17:20:13
【问题描述】:
对于我的家庭作业,我必须用 C++ 编写一个 Game 类,该类具有名称、大小和包含更新日期和有关该更新的一些信息的更新列表。 (例如:22.05.2018 修复了任务 3 的错误)。这是我尝试过的,但它不起作用。游戏.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>&)'|
【问题讨论】:
-
请以minimal reproducible example 的形式提供可测试的代码,并准确解释如何它不起作用。你能指望什么?实际发生了什么?
-
有什么问题?
-
您使用
std::list而不是std::vector的任何特殊原因? -
“它不起作用”不是一个有用的问题描述。
-
这个错误看起来有点奇怪,但我猜
main中的list<update> mylist;应该是list<Game::update> mylist;,因为update是一个嵌套类型。