Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试使用嵌套结构返回迭代器时,会给出;不将类型命名为“;错误_C++_Stl - Fatal编程技术网

C++ 尝试使用嵌套结构返回迭代器时,会给出;不将类型命名为“;错误

C++ 尝试使用嵌套结构返回迭代器时,会给出;不将类型命名为“;错误,c++,stl,C++,Stl,我在类中定义一个私有结构的向量,然后尝试获取该类的私有函数以返回迭代器。简化代码: #include <vector> class A { private: struct B { ... }; std::vector<B> vecB; typedef std::vector<B>::iterator BIter; BIter FindSomething(); }; BIter A::FindSome

我在类中定义一个私有结构的向量,然后尝试获取该类的私有函数以返回迭代器。简化代码:

#include <vector>

class A
{
private:
    struct B {
        ...
    };
    std::vector<B> vecB;
    typedef std::vector<B>::iterator BIter;

    BIter FindSomething();
};

BIter A::FindSomething() { ... }
#包括
甲级
{
私人:
结构B{
...
};
std::vecB;
typedef std::vector::迭代器比特;
BIter FindSomething();
};
比特者A::FindSomething(){…}
不幸的是,当我尝试编译它时,我得到了一个错误:
'BIter'没有命名类型

在最后一行。

最后一行应该是

A::BIter A::FindSomething() { ... }

原因是
BIter
A
类的内部,当编译器得到
BIter A::FindSomething
的定义时,还没有为返回类型建立上下文(
A
类),因此必须完全限定它。

最后一行应该是

A::BIter A::FindSomething() { ... }
原因是
BIter
A
类的内部,当编译器得到
BIter A::FindSomething
的定义时,还没有为返回类型建立上下文(
A
类),因此必须完全限定它