gpt4 book ai didi

c++ - 调用成员函数时遇到问题

转载 作者:行者123 更新时间:2023-11-28 05:18:36 25 4
gpt4 key购买 nike

我确定我的问题很愚蠢,我对 C++ 一点经验都没有。

我正在尝试调用一个函数,如果输入的值已经在一个集合中,该函数将返回 true。当我在另一个函数中调用此函数时出现错误,我不确定为什么。

这里是我调用函数的地方:

Set::Insert(const value_type& entry){
if(!Contains()){...

这是我正在调用的函数:

bool Set::Contains(value_type& entry) const{
int temp = 0;

for(int i = 0; i < used; i++){
if(data[i] == entry){
return true;
}else{
temp++;
}
}

if(temp == used) return false;

}

当然有更好的方法来做到这一点,但现在我更关注它为什么不起作用。

我得到的错误是“没有匹配函数来调用 Set::Contains()”但我不明白为什么。我有函数原型(prototype)。

public:
typedef int value_type;
typedef std::size_t size_type;
static const size_type CAPACITY = 5;
Set();
Insert(const value_type& entry);
Remove();
bool Contains(value_type& entry) const;
Print();
moveForward();
moveBack();
~Set();

最佳答案

const value_type&(Set::Insertentry 的类型)不能隐式转换为 value_type&(这是 Set::Contains 采用的参数类型)。由于 Set::Contains 不会改变它的参数,您应该也可以让它采用 const value_type&

关于c++ - 调用成员函数时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42016211/

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