正如标题所示,我正在尝试抓住std :: map容器并返回它。
我收到以下错误:没有参数列表的模板名称'std :: map'的无效使用
现在,我非常确定原因与模板有关,但是根本没有找到描述我具体情况的示例。
我的程序相当简单,因为我是陪产假的新手。它由以下文件组成:
我认为没有人希望我粘贴所有代码,所以我粘贴了我认为对我的问题至关重要的部分。下面的代码:
Movie_Archive.hpp
class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
std::map getMovieArchive();
};
Movie_Archive.cpp
std::map MovieArchive::getMovieArchive() {
return movie_archive;
}
main.cpp
TheMovieArchive.controlArchiveStatus(TheMovieArchive.getMovieArchive(), TheMovieArchive.getTitle());
//检查电影标题是否已经输入
非常感谢您的关注。我希望有人能找到解决方案。
亲切的问候// Alle
答案 0 :(得分:4)
您可能是说
class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
std::map<std::string, Movie> getMovieArchive();
};
即,您还必须在getter的返回类型中提供模板参数。
顺便说一句:您可能想写
class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
const std::map<std::string, Movie> & getMovieArchive();
};
即返回一个const引用,而不是内部数据结构的副本。