错误C2036:'Agent*const':'vector'类中的未知大小

Sir*_*lot 2 c++

我在vector课堂上发生了一个错误,就像你在上课时所访问的课程一样#include < vector >

我只得到一次,我不知道它为什么会发生:

错误C2036 'Agent *const '::未知大小

这也发生在vector中,有错误的代码在这里:

size_type size() const
{   // return length of sequence
    return (this->_Mylast - this->_Myfirst); // error on this line
}
Run Code Online (Sandbox Code Playgroud)

Syl*_*sne 17

这意味着此时类型Agent尚不完全清楚.您可能只是向前声明了它,但此时没有可见的定义.

以下代码显示此错误:

#include <vector>
class Agent;
static int getSize(std::vector< Agent > const& v) {
    return v.size();
}
Run Code Online (Sandbox Code Playgroud)

您需要的是Agent在使用之前包含定义类的文件std::vector< Agent >.该文件可能已命名Agent.h.

出错的原因是因为在您指向的代码行中,编译器尝试计算两者之间的差异Agent const*.这大致等于指定为char const*除以的指针的差异sizeof(Agent).但是,如果类型未完全定义,则不知道此大小.

  • 在这里使用思维方式的魔法帽+1 (2认同)