return std::map 用 getter 方法
return std::map with a getter method
如标题所示,我正试图抓住一个 std::map 容器并 return 它。
我收到以下错误:在没有参数列表的情况下无效使用 template-name 'std::map'
现在我很确定原因与模板有关,但只是没有找到描述我的具体情况的示例。
我的程序相当简单,因为我是休产假的新手。它由这些文件组成:
- main.cpp
- Movie_Archive.hpp
- Movie_Archive.cpp
- Movie.hpp
- Movie.cpp
- Helper.hpp
- Helper.cpp
我认为没有人希望我粘贴所有代码,所以我粘贴了我认为对我的问题至关重要的部分。代码如下:
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
你的意思可能是
class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
std::map<std::string, Movie> getMovieArchive();
};
即,您还必须在 getter 的 return 类型中提供模板参数。
顺便说一句:你可能想写
class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
const std::map<std::string, Movie> & getMovieArchive();
};
即return使用 const 引用而不是内部数据结构的副本。
如标题所示,我正试图抓住一个 std::map 容器并 return 它。
我收到以下错误:在没有参数列表的情况下无效使用 template-name 'std::map'
现在我很确定原因与模板有关,但只是没有找到描述我的具体情况的示例。
我的程序相当简单,因为我是休产假的新手。它由这些文件组成:
- main.cpp
- Movie_Archive.hpp
- Movie_Archive.cpp
- Movie.hpp
- Movie.cpp
- Helper.hpp
- Helper.cpp
我认为没有人希望我粘贴所有代码,所以我粘贴了我认为对我的问题至关重要的部分。代码如下:
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
你的意思可能是
class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
std::map<std::string, Movie> getMovieArchive();
};
即,您还必须在 getter 的 return 类型中提供模板参数。
顺便说一句:你可能想写
class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
const std::map<std::string, Movie> & getMovieArchive();
};
即return使用 const 引用而不是内部数据结构的副本。