双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

关于C++primer上例题的疑问

程序员菜鸟 程序员菜鸟 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
QueryResult TextQuery::query( const string &sought) const
{
static shared_ptr<set<line_no>> nodata(new set<line_no>);
auto loc = wm.find(sought);
if (loc == wm.end())
return QueryResult (sought, nodata, file);
else
return QueryResult(sought, loc->second, file);
}

在第12章节的文本查询程序 return QueryResult结果语句中报错:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0312 不存在用户定义的从 "const std::string" 到 "QueryResult" 的适当转换 Project19 c:\Users\Administrator\source\repos\Project19\Project19\TextQuery.cpp 26

可是我检查了QueryResult的构造函数,第一个参数是string,
class QueryResult
{
friend ostream & print(ostream &, const QueryResult&);
using line_no = vector<string>::size_type;
public:
QueryResult(string s, shared_ptr<set<line_no>> p, shared_ptr<vector<string>> f) :
sought(s), lines(p), file(f) {}
private:
string sought; //查询单词
shared_ptr<set<line_no>> lines;
shared_ptr<vector<string>> file;
};

想问下各位大佬为什么会出现这样的错误
...全文

相关推荐

评论 13
收藏 已收藏
分享
返回顶部
程序员菜鸟
C++ 语言 65,214 成员 250,514 内容