gpt4 book ai didi

C++ const 迭代器 C2662

转载 作者:搜寻专家 更新时间:2023-10-31 01:22:53 26 4
gpt4 key购买 nike

迭代有问题。我认为问题与 const 的正确性有关。我假设 B::getGenerate() 应该是 const 才能让这段代码正常工作,但我无法控制 B::getGenerate()。

非常感谢任何帮助。

提前致谢,jbu

代码如下:

int
A::getNumOptions() const
{
int running_total = 0;

BList::const_iterator iter = m_options.begin();

while(iter != m_options.end())
{
if(iter->getGenerate()) //this is the line of the error; getGenerate() returns bool; no const in signature
{
running_total++;
}
}

return running_total;
}

1>.\A.cpp(118):错误 C2662:“B::getGenerate()”:无法将“this”指针从“const B”转换为“B &”

最佳答案

好吧,如果 getGenerate 是非常量,那么您的迭代器必须是非常量。如果是这种情况,您的 getNumOptions 也必须是非常量。

如果 getGenerate 不在您的控制之下,您将无能为力。但是,如果该方法可能是 const,请与实现该方法的人一起提出;告诉他们它应该是 const

关于C++ const 迭代器 C2662,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360588/

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