gpt4 book ai didi

c++ - 方法调用中的参数无效

转载 作者:行者123 更新时间:2023-11-28 02:57:22 25 4
gpt4 key购买 nike

在我的课上 InVal ,我有一个方法和一个友元运算符声明如下:

void Parse(std::istream& file) throw (int);
friend std::istream& operator >> (std::istream& is, const InVal& id3);

友商>>代码是这样的:

std::istream& operator >> (std::istream& is, const InVal& val) {
val.Parse(is);
return is;
}

在线val.Parse(is)我得到 Invalid arguments候选报价为 void Parse(std::basic_istream<char, std::char_traits<char>>&) .在 iosfwd , 我有

typedef basic_istream<char>         istream

所以某处不匹配。为什么会出现错误,我该如何解决?

最佳答案

val 是一个const 引用,这意味着您只能在其上调用const 成员函数。您需要将 Parse 声明为 const 成员函数,如下所示:

void Parse(std::istream& file) const throw (int);

这向编译器保证 Parse 不会修改正在调用它的 InVal 对象。

关于c++ - 方法调用中的参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21681479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com